开发者社区> 问答> 正文

防止sql注入问题

落地花开啦 2016-02-01 14:29:32 1782

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

SQL
分享到
取消 提交回答
全部回答(3)
  • 1055116915809032
    2019-07-17 18:37:07
    一般来说方法有几种: 1、采用预编译语句集,它内置了处理SQL注入的能力,只要使用它的setXXX方法传值即可。 2、使用正则表达式过滤参数。 3、字符串过滤,其实和2相同。 整体来说目前有好多线程的包处理sql注入的问题,只要引入包然后将传入的参数经过方法过滤就能防止sql注入。
    0 0
  • 31927813
    2019-07-17 18:37:07
    不要使用字符串拼接sql语句,变量通过参数方式传入。
    0 0
  • 落地花开啦
    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构造的参数化也特别方便。

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

    0 0
添加回答
+ 订阅

分享数据库前沿,解构实战干货,推动数据库技术变革

推荐文章
相似问题
推荐课程