虽然我当然可以看到使用参数进行SQL查询的优势,特别是在处理日期时间等事情时,我仍然不确定参数是防止SQL注入的唯一方法.
事实是,我继承了一个应用程序,它有类似的东西
"SELECT Field FROM Table WHERE Filter='"+userinput.Replace("'", "''")+"'"
Run Code Online (Sandbox Code Playgroud)
到处都是.现在虽然那些看起来不太令我愉快,但我不介意重写它们,我的问题是,我需要吗?尽我所能,我看不到用这种方式执行SQL注入的方法.
Dav*_*vid 16
不,这还不够.如果您的平台和/或RDBMS支持这两种功能,那么它将在紧要关头,但它是一个非常弱的替代方案,并且使用参数化查询或参数化存储过程会更好.
从
...与使用参数化查询相比,这种方法很脆弱.只有谨慎使用此技术才能以经济有效的方式改进遗留代码.
还有更多
| 归档时间: |
|
| 查看次数: |
14049 次 |
| 最近记录: |