我为客户开发了一个网站,他们将在线发布商品图片。网址为www.domiainname.com/item-details.cfm?sku=125
。有人试图浏览www.domiainname.com/item-details.cfm?sku=125%20and%203=3
产生的错误和我收到通知的错误。
我还收到了错误报告:
item-details.cfm?sku=1291+or+1=@@version--
item-details.cfm?sku=1291'+or+1=@@version
item-details.cfm?sku=1291+or+1=@@version
最后三个例子肯定是有人试图进入系统,对吗?
如果我们将此转换为存储过程,是否会降低或消除插入攻击的风险?
答案 0 :(得分:8)
是的,似乎有人是恶意的。
使用cfqueryparam
可以防止SQL注入攻击。如果有疑问(并且是CF),请问Ben:
SQL Injection Attacks, Easy To Prevent, But Apparently Still Ignored
示例:
<cfquery ...>
SELECT *
FROM Products
WHERE SKU=<cfqueryparam value="#URL.SKU#" cfsqltype="CF_SQL_INTEGER">
</cfquery>
答案 1 :(得分:2)
使用cfqueryparam并忘记任何sql-injection;)
答案 2 :(得分:0)
是的,有人尝试过SQL注入。如果您在代码中正确检查sku
变量,则不会造成任何伤害。