2008-09-15 19 views
3

我已经继承了一个大型的传统ColdFusion应用程序。有数以百计<CFQUERY>一些SQL这里#需要沿该线被参数变量#</CFQUERY >声明:<CFQUERY>一些SQL这里< cfqueryparam值= “#变量#”/ > </CFQUERY >如何以编程方式清理ColdFusion cfquery参数?

我该如何去编程添加参数化?

我曾想过编写一些正则表达式或sed/awk'y类的解决方案,但似乎有人在某处解决了这样的问题。奖励积分自动推断SQL类型。

+0

我还没有机会审核http://qpscanner.riaforge.org/或http://www.webapper.net/index.cfm/2008/7/22/ColdFusion-SQL-Injection。但是,如果这两个人中的一个能够得到足够的赞扬,也许我不必,我可以接受这个答案。 – 2008-09-17 04:03:25

回答

10

有一个queryparam扫描仪,会发现他们对你RIAForge:http://qpscanner.riaforge.org/

+0

注意:QueryParam Scanner 0.8版将增加自动修复参数的功能,但目前它只能找到它们。 – 2008-09-15 22:26:14

6

这里有引用的脚本:http://www.webapper.net/index.cfm/2008/7/22/ColdFusion-SQL-Injection,将做大多数繁重的工作适合你。你所要做的就是检查查询并确保语法正确解析。

没有理由不使用CFQueryParam,除了它更安全以外,它是性能提升和处理基于字符的列类型中引用值的最佳方式。

+0

这个脚本现在在github上供人们抓取和贡献。 https://github.com/mhenke/WebApper-ColdFusion-SQL-Injection – 2011-07-29 15:30:26

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

我们用这个来抵消最近的SQL注入攻击。我们将它添加到我们网站的Application.cfm文件中。

0

我怀疑有一个解决方案能够完全满足您的需求。我看到的唯一选择是编写自己的递归搜索,为您生成报告或使用上面列出的应用程序/脚本之一。基本上,您将不得不编辑每个页面或批准所有自动更改。

3

请记住,您可能无法用<cfqueryparam>解决所有问题。

我见过很多例子,其中按字段名称的顺序在查询字符串中传递,这是一个稍微棘手的问题,需要以更“手动”的方式来验证。

相关问题