X

Programming

安全なAPI過信症候群の処方箋 – execv/SQLite3編

またプリペアードクエリなど、安全とされるAPI万能と考えている方に会ったのでエントリを書きました。広く病気として治療すべき、と思いエントリを書きました。 安全なAPI過信症候群(同類にプリペアードクエリ過信症候群):「安全」とされるAPIを使えば安全と、盲目的に信用し考慮すべきリスクを考えない症候群。ITエンジニアが発症し最も重要なセキュリティ対策である入力…

PHP/Apache httpdのファイルアップロード/ダウンロード処理

最近、ファイルアップロード対策に関する検索が増えているようなので書きました。PHPの場合、スクリプトがアップロードされ実行されてしまうと致命的です。アップロードされたファイルを公開ディレクトリに保存することは好ましくありあせん。しかし、既にそうなっているアプリケーションの場合、改修が困難な場合もあります。

password_hash()の重要な制限

password_hash関数はcrypt関数のラッパーです。パスワードを簡単かつ安全にハッシュ化するための関数です。現在のPHPマニュアルにはpassword_hash関数の重要な制限が未記載であったため追加しました。

Rails ActriveRecordとSQLインジェクションと実際のアプリケーション

先日はActive RecordのSQLインジェクションパターンを紹介しました。今回は脆弱なコードを見つける事を試みようと思います。脆弱とは言っても攻撃可能であることは意味しません。コーディングとして脆弱であるという意味です。実際に攻撃可能であるかどうかまでは確認していません。

PhalconのZephir言語版JavaScript文字列エスケープ

以前にJavaScript文字列のエスケープ関数を紹介しました。試しにPhalconのZephirで書いてみました。

ActiveRecordのSQLインジェクションパターン

Railsで多用されているActiveRecordのインジェクションパターンを簡単に紹介します。出典はrails-sqli.orgなのでより詳しい解説はこちらで確認してください。特に気をつける必要があると思われるもののみをピックアップしました。

SSL脆弱性に備えたパスワード認証方法を考える

ここ数年SSLに対する攻撃方法やバグが何度も見つかっています。SSLで通信を暗号化していてもパスワード認証時のトラフィックを解読されてしまえば、パスワードが漏洩していまいます。パスワードが判ってしまえば、攻撃者は何度でも被害者のアカウントを利用できます。 脆弱性でなくても、SSLも無効化したMITM(中間者攻撃)も可能です。SSLだから安心、とは考えられませ…

なぜRubyと違い、PHPの正規表現で^$の利用は致命的な問題ではないのか?

Rubyデフォルトの正規表現では^は行の先頭、$は改行を含む行末にマッチします。PHPのPCREとmbregexでは^はデータの先頭、$は改行を含む行末にマッチします。 この仕様の違いはデータのバリデーションに大きく影響します。

PHPer向け、Ruby/Railsの落とし穴

Railsアプリケーションを作る機会も多くなったと思います。今までPHPのみを使ってきた方の為に、開発者がよく落ちてしまうRails/Rubyの落とし穴を少しだけ紹介します。RailsからWebアプリをはじめる方にも役立つと思います。

PHP本体でタイミング攻撃を防御できるようになります

PHP 5.6からタイミング攻撃に対する対策が導入されます。メジャーなアプリケーションはスクリプトでタイミング攻撃対策が導入されていますが、PHP 5.6から簡単に対策できるようになります。