开发者社区> 问答> 正文

防止sql注入问题

最近总是看到有一些sql盲注得请求打到服务器上,请问如何防御这种攻击啊?

展开
收起
落地花开啦 2016-02-01 14:29:32 3667 0
3 条回答
写回答
取消 提交回答
  • 一般来说方法有几种: 1、采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。 2、使用正则表达式过滤参数。 3、字符串过滤,其实和2相同。 整体来说目前有好多线程的包处理sql注入的问题,只要引入包然后将传入的参数经过方法过滤就能防止sql注入。
    2019-07-17 18:37:07
    赞同 展开评论 打赏
  • 不要使用字符串拼接sql语句,变量通过参数方式传入。
    2019-07-17 18:37:07
    赞同 展开评论 打赏
  • 喜欢技术,喜欢努力的人

    预处理,将参数和查询分开。

    那怎样才能做好参数化?如果你的查询不是复杂到非字符串构造sql不可(譬如递归或者动态层次的join),那几乎所有情况都可以使用下列方法解决:
    1、SQLServer把数据跟stored procedure放在一起。其实这样还能起到数据和封装同步的作用,不需要两头改。在schema发生变化的时候,整个update都可以做transaction。
    2、客户端(或者你的网站)只访问stored procedure。
    3、只给你的客户端打开execute权限,这样它只能访问stored procedure。
    使用stored procedure基本就等于让数据库来帮你做参数化,所以你不会犯任何错误。而且这个方法并不会在你需要字符串构造sql的时候发生问题,因为stored procedure里面也可以构造sql,而且做起这种sql构造的参数化也特别方便。

    所有的注入问题都自动解决了。

    2019-07-17 18:37:07
    赞同 展开评论 打赏
问答分类:
SQL
问答地址:
问答排行榜
最热
最新

相关电子书

更多
SQL Server 2017 立即下载
GeoMesa on Spark SQL 立即下载
原生SQL on Hadoop引擎- Apache HAWQ 2.x最新技术解密malili 立即下载