0

添加了清理功能以通过剥离某些字符来防止 SQL 注入。确实很难手动浏览所有文件并找到应该添加功能的位置。有没有办法自动化这个过程或使用查找/替换?我目前正在做的是寻找SELECT, UPDATEor INSERTstatements 并在其中寻找#...#并替换它,#sanitize(...)#但如果表中有多个列正在更新,它可能会更复杂。

编辑:可以使用 grep 吗?如果您不知道答案,请考虑对此问题进行投票。

4

3 回答 3

1

sql 注入可以发生在 SELECT 调用以及任何其他 sql 调用中。不仅仅是更新和插入。

于 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 - 因此它们值得您花时间。

正如 Scott 所说 - 您确实应该检查每个查询并添加 cfqueryparam 以进行深度防御。

于 2012-05-15T13:20:21.720 回答