2008-09-15 11 views
3

私は大きなレガシーColdFusionアプリケーションを継承しました。 <のcfquery >ここにいくつかのsql = "#変数#"/> </cfqueryの>ColdFusionのcfqueryパラメータをプログラムでサニタイズするにはどうすればよいですか?

<でcfqueryparam値:<のcfquery >いくつかのSQLの何百もの線に沿ってパラメータ化する必要がある#変数#</cfqueryの>文がここにあります。

パラメータ化をプログラムで追加するにはどうすればよいですか?

私はいくつかの正規表現やsed/awk'yソート解決策を書こうと考えましたが、どこかの誰かがそのような問題に取り組んでいるようです。 SQLタイプを自動的に推論するためのボーナスポイント。

+0

私はまだhttp://qpscanner.riaforge.org/、またはhttp://www.webapper.net/index.cfm/2008/7/22/ColdFusion-SQL-Injectionを習得する機会がありませんでした。しかし、これらの2つのうちの1つが十分なアップボックスを得ることができれば、おそらく私はする必要はないでしょう。 –

答えて

10

RIAForgeにあなたのためにそれらを見つけるでしょうqueryparamスキャナがあります:http://qpscanner.riaforge.org/

+0

注:QueryParam Scannerのバージョン0.8は、パラメータを自動修正する機能を追加しますが、現時点ではそれらを検出します。 –

6

ここで参照するスクリプトがあります:http://www.webapper.net/index.cfm/2008/7/22/ColdFusion-SQL-Injectionあなたのために重い物を持ち上げるの大部分を行います。あなたがしなければならないのは、クエリをチェックし、構文が正しく解析されることを確認することだけです。

CFQueryParamを使用しないという言い訳はありません。それははるかに安全であることを除けば、パフォーマンスが向上し、文字ベースの列型で引用された値を処理する最善の方法です。

+0

このスクリプトは、人々が掴んで貢献するためのものです。 https://github.com/mhenke/WebApper-ColdFusion-SQL-Injection –

1
<cf_inputFilter 
      scopes = "FORM,COOKIE,URL" 
      chars = "<,>,!,&,|,%,=,(,),',{,}" 
      tags="script,embed,applet,object,HTML"> 

最近のSQLインジェクション攻撃に対処するために使用しました。私たちは、このサイトのApplication.cfmファイルに追加しました。

0

あなたのニーズに正確に合った解決策があるのではないかと疑いがあります。私が見る唯一のオプションは、あなたのためのレポートを構築するか、または上にリストしたapps/scriptsの1つを使用する独自の再帰的な検索を書くことです。基本的には、各ページを編集するか、すべての自動化された変更を承認する必要があります。

3

<cfqueryparam>ですべてを解決できない可能性があることに注意してください。

私は、フィールド名による順序がクエリ文字列に渡されている例をいくつか見てきました。これは、より「手動」な方法でそれを検証する必要があるため、やや難解な問題です。

関連する問題