2011-07-22 17 views
2

PHPコードでSQLiの脆弱性を発見するためのスタティックコード解析ツールを作成したいと思います。通常は、スクリプトを使用して機能を分離し、不十分な消毒のためにそれらをグレープするだけです。明らかにこのアプローチは限られています。スタティックコード解析ツールの作成

私が書きたいプログラムの概要は次のとおりです。

  1. 検索全ては
  2. がするmysql_query
  3. トラック各クエリのコールに入るすべての変数を呼び出す関数へのすべての参照を検索するmysql_queryの呼び出しmysql_real_escape_stringが実行されているかどうかを確認してください。

私はこれを書くための2つのアプローチの間に挟まれています。私は、PHP拡張モジュールを使うか、スタンドアローンで書くかのどちらかです。

PHP拡張機能を使用する利点は、私自身のトークナイザ、パーサーなどを作る必要がないことです(これはXDebug拡張機能の能力に基づいています)。

PHP拡張機能を作成した経験がある人は、問題へのアプローチ方法についてアドバイスをしていますか?

+0

外部で渡された変数と、さまざまな文字列と変数から作成されたSQLを区別する方法はありますか?いくつかのコードでは追跡が非常に難しく、SQLを構築するのが一般的です。 – Orbling

答えて

2

私はRIPS Scannerプロジェクトを見て、アイデアのソースコードを見直すことをお勧めします。それはあなたがしたい機能を正確に実行します。

+0

「正確に」はここでは不正確なようです。これは、コードの制御とデータフロー解析を試みます。このサイトのテクニカルペーパーは、両方の実装がむしろ不完全であることを示しています。 –

関連する問題