0

特定の文字を削除して SQL インジェクションを防止するサニタイズ機能が追加されました。すべてのファイルを手動で調べて、関数を追加する場所を見つけるのは確かに困難です。このプロセスを自動化する方法や、検索/置換を使用する方法はありますか? 私が現在行っているのは、、SELECTまたはUPDATEステートメントの検索であり、INSERTその中で検索し#...#て置換し#sanitize(...)#ますが、テーブルで複数の列が更新されている場合は、より複雑になる可能性があります。

編集: grep は使用できますか? 答えがわからない場合は、この質問に投票することを検討してください。

4

3 に答える 3

1

SQL インジェクションは、SELECT 呼び出しだけでなく、他の SQL 呼び出しでも実行できます。UPDATE と INSERT だけではありません。

于 2012-05-14T23:22:27.973 に答える
1

cfqueryparam も調べてください。これにより、SQL インジェクションの防止に役立つだけでなく、パフォーマンスがわずかに向上します。

于 2012-05-15T03:09:13.303 に答える
0

これは、Application.cfm または Application.cfc ファイルでグローバルに行うことができます。

<cfloop collection="#form#" item="fItem">
   <cfset form[fItem] = SanitizeFunction(form[fItem])/>
</cfloop>

URL、CGI、および Cookie のループを追加すると、ユーザーが提供した各変数を効果的に調べたことになります。これは、「Web アプリケーション ファイアウォール」の背後にある概念です。すべてのユーザー入力を検査し、それをスクラブまたは検証して、それが主張しているものであることを確認します。

例として、スーパー グルの Pete Freitag の製品であるFoundeoをチェックしてください。彼は他にも非常に多くのリソースを持っています。WAF は通常、SQLi だけでなく、他の潜在的な脆弱性を探します。そのため、時間をかける価値があります。

スコットが述べたように、各クエリを調べて、詳細な防御のために cfqueryparam を追加する必要があります。

于 2012-05-15T13:20:21.720 に答える