不使用cfqueryparam防止SQL注入

Bsi*_*enn 4 coldfusion sql-injection

我有旧项目包含许多不cfqueryparam用于防止SQL注入的查询.有没有办法在每个表单字段上使用某些函数在应用程序级别上执行类似操作?

作为一个具有PHP背景的初学者,我想我可以循环发布的数据并做一个escape_string()或类似的.但我不希望数据以转义形式保存.我认为cfqueryparam不会以转义形式保存数据.(我还没有尝试过.我是CF的新手.)否则,我必须在每次检索时取消数据,我不想这样做.我希望按原样插入和检索输入.

基本上我只是希望它在应用程序级别完成,所以我不必在每个项目上逐个更改数千个查询.

样本输入

it's my book
user@gmail.com'; delete database --
Run Code Online (Sandbox Code Playgroud)

Adr*_*eno 12

我去过三个不同的公司,他们必须完成一个完整的项目冻结并分配所有开发人员来更新对查询和存储过程的调用.有些甚至不得不聘请承包商这样做几个月.你将不得不咬紧牙关并手动完成它们.

您可以借此机会删除一堆冗余查询,将其替换为存储过程并将其移至CFC.这样您就可以重复使用单一来源的查询,并减少您必须完成的工作量.

您可以放置​​Web应用程序防火墙(WAF)来处理来自外部的一些请求,但它们不是100%.根据您的客户端,代码必须在不使用WAF的情况下防止SQL注入.

  • *你将不得不硬着头皮*..,你可能会考虑的工具,如[QueryParamScanner(http://qpscanner.riaforge.org/),以帮助与任务. (7认同)