Node.jsのMVCフレームワークであるSailsはインストールも簡単で、気軽に試せます。しかし、Node.jsはシングルプロセス&スレッドで動作するので今時のマルチコアCPUではその性能はフルに発揮できません。以前はNginxなどで設定するなど、色々面倒でしたがPM2を利用すると簡単にプロセス管理が行えます。もちろんSails以外のNode.jsアプリケーションのプロセス管理にも利用できます。
- 
Phalcon 1.3 と 2.0のベンチマークPhalcon Adventカレンダー15日目のエントリです。Phalcon 1.3と2.0でどの程度性能差があるか簡単なベンチマークを取ってみました。 
- 
PostgreSQLのJSONB型を利用してタグ検索を行う遅れてしまいましたが、PostgreSQL Adventカレンダー2014の9日目です。昨年はタグ検索するならPostgreSQLで決まり!でPostgreSQLの特徴でもある配列型を使ったタグ検索を紹介しました。今年はJSONを使ってみたいと思います。 つい先程、PostgreSQL GitリポジトリからPostgreSQL 9.4のソースを取得&ビルドして記事を書いています。(記事を書くことを忘れていたので大急ぎで書きました) 
- 
SQLiteデータ型の仕様とセキュリティ問題SQLiteはファイルベースのオープンソースRDBMSです。オープンソースとしては珍しいパブリックドメインライセンスを採用しています。SQLiteはファイルベースなのでデータベースサーバーが必要なく手軽に利用できます。SQLiteは組み込みデバイスで広く利用され、Android/iOSなどでは標準的なデータベースとして利用されています。モバイルデバイス以外での利用も広がっており例えば、Drupal8はSQLite3に対応しています。 普通のRDBMSのようにSQLクエリが利用できるのでとても便利ですが、SQLiteの仕様は他のRDBMSと異なるので注意が必要です。 追記:論理的・体系的セキュリティを構築していれば、ここに書かれているようなセキュリティ上問題となる事を自身で分析/対応できるようになります。 
- 
安全なAPI過信症候群 – 普通のRDBMS編昨日書いた安全なAPI過信症候群の処方箋 – execv/SQLite3編はSQLiteの仕様がRDBMSとしてエキゾチック過ぎて、さらっと書いたよくあるRDBMSでの「安全なAPI過信症候群」を全く理解して頂けなかったケースもあるようなのでもう一度書きます。 プリペアードクエリには色々問題もあり、セキュリティ対策としてそれだけ教えるのはNG、と考えている方はプリペアードクエリ過信症候群ではないので、このエントリを読む必要はありません。 
- 
安全なAPI過信症候群の処方箋 – execv/SQLite3編またプリペアードクエリなど、安全とされるAPI万能と考えている方に会ったのでエントリを書きました。広く病気として治療すべき、と思いエントリを書きます。安全なAPI過信症候群と名付けました。 安全なAPI過信症候群(同類にプリペアードクエリ過信症候群など):「安全」とされるAPIを使えば安全と、盲目的に信用し考慮すべきリスクを考えない症候群。ITエンジニアが発症し最も重要なセキュリティ対策である入力バリデーションを「必要ない、できない、セキュリティ対策ではない」エスケープは「必要ない、有害である」とする場合、かなり重度の場合が多い。 このブログでは既に何度もプリペアードクエリクエリは不完全である、と指摘しています。プリペアードクエリを使っていれば安全と盲目的に信じている方向けの基礎知識を紹介します。コマンド実行APIのexecvと最も多く利用されているRDBMS、SQLite3が題材です。 現実を知れば安全とされるAPIを盲信することも危険だと解り、安全なAPI過信症候群を完治できると思います。 
- 
The Pirate Bayに学ぶWebシステムの作り方The Pirate Bay(TPB)と言えば、世界最大のtorrentサイト、著作権違反サイトとして有名です。実際、サイトの運営者は起訴され刑務所に収監されています。にも関わらずTPBは現在も運用されています。 TPBは世界TOP100のサイトで毎日何百万ものユニークビジターが訪問しているサイトです。HOW THE PIRATE BAY REMAINS UNTOUCHABLEにTPBのシステム構成がどのようなものか紹介されています。 
- 
Phalcon2.xのRPMパッケージを作るこのエントリはPhalcon PHP Advent Calendar 2014 4日目のエントリです。2日目としてPhalcon 1.xのRPMパッケージを作っています。今回はPhalcon2のRPMパッケージをphp-phalcon2.xパッケージとして作ります。多分動くと思いますが、ほとんどテストしていないので問題があったらコメントをお願いします。 php-phalconとphp-phalcon2パッケージは同時にインストールできないので注意してください。 
- 
PHP/Apache httpdのファイルアップロード/ダウンロード処理最近、ファイルアップロード/ダウンロード対策に関する検索が増えているようなので書きました。PHPの場合、スクリプトがアップロードされ実行されてしまうと致命的です。アップロードされたファイルを公開ディレクトリに保存することは好ましくありあせん。しかし、既にそうなっているアプリケーションの場合、改修が困難な時もあります。このような場合もより安全に利用できる設定を紹介します。 参考:「スクリプトアップロード対策」も合わせてどうぞ。 
- 
Phalcon PHPのRPMパッケージを作るPHP最速フレームワークのPhalconですが、RPMパッケージを使ったシステムへのインストールは最速ではありません。Ubuntuの場合、パッケージがあってapt-getで一発インストールできるのですが、デフォルト/EPELリポジトリにはRHEL/CentOS/Fedora用のRPMパッケージはありません。そこでPhalconのRPMパッケージを自分で作る手順を紹介します。 このエントリはPhalcon PHP Advent Calendar 2014 2日目のエントリです。 追記:SRPMファイルのダウンロードリンクを忘れていました。次のURLでダウンロードできます。 私が普段使っている環境はビルドツールが全て揃っています。もし依存性(BuildRequires、Requires)などが足りなかったら教えてください :) 
- 
開発者はセキュリティ問題を自己解決できるのか?ソフトウェア開発において開発者はセキュリティ問題を自己解決できるのか?それとも自己解決できないのか?どちらが正しいのか考えてみます。 
- 
OWASPのプロアクティブコントロールTOP10もう十年以上前に書いた本でプロアクティブなセキュリティ対策が重要と書いていたと思います。OWASPのプロアクティブコントロールTOP10を紹介します。 
- 
PHP技術者認定機構の新しいマグカップとブックエンドPHP技術者認定機構のマグカップが新しくなり、ブックエンドが追加されました。 私も一部を頂きました。カップの形は同じで色が違います。ブックエンドは可愛いので娘に好評でした。 PHP技術者認定機構のページは2000いいね!を超えました。ありがとうございます。 
- 
password_hash()の重要な制限password_hash関数はcrypt関数のラッパーです。パスワードを簡単かつ安全にハッシュ化するための関数です。現在のPHPマニュアルにはpassword_hash関数の重要な制限が未記載であったため追加しました。 (さらに…) 
