码迷,mamicode.com
首页 > 数据库 > 详细

关于防止sql注入的几个知识点

时间:2015-06-16 10:52:47      阅读:118      评论:0      收藏:0      [点我收藏+]

标签:

1.PDO预处理是首选。

  你可以把他看成是要运行的sql的已经编译过的模板,它可以用变量参数进行定制

  它有两个显著优点:

    1.1:查询仅需解析一次,但可以用相同或者不同参数执行多次。换句话说如果要以不同的参数执行同样的语句执行多次,利用PDO可以大大降低应用程序的速度。

    1.2:提供给预处理的语句不需要携带引号,所以可以有效防止sql的注入。但是如果查询的其他部分是由未转义的输入来构建的,则仍存在sql注入的风险。

    1.3:另外pdo预处理无效的地方:

      1.3.1:limit语句

      1.3.2 : like %?%.  不能这么使用,占位符必须代表整个字符。所以可以这样 like ?,然后传入参数为这样的格式:%iloveyou%;

2.在处理参数之前先decode两次。防止url编码注入。

  为什么这么做呢?我暂时也不太理解,这个博客上有相关说明。特此向博主致敬!牛人,总结的真好。
  http://drops.wooyun.org/tips/968

3.然后过滤引号,括号,和一些sql关键词(最好是urldecode两次后),比如union,select,concat等,最好能匹配单词边界,有些sql注入可能使用替换关键词的办法如:seSelectlect,这样即使select被过滤了,然后又来个select。

做了这些处理就能抵御大部分的sql注入了。具体更多的看这篇博文:http://drops.wooyun.org/tips/968

关于防止sql注入的几个知识点

标签:

原文地址:http://www.cnblogs.com/doubilaile/p/4580083.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!