PHP的新手在开发的时候不可避免的会遇到SQL注入的问题,很多老手在介绍的时候是叮嘱叮嘱再叮嘱啊。其实有个简单的方法就可以减少这种问题的过失。
1、rewrite 规则
2、很多框架的路由
这两种方式都是将GET方法做了一个简单正则处理,也只有符合规则的情况下,GET值才会被赋值到变量中。如果将ID等做一个\d的判断,那么非数字的已经经过一次过滤了。
而且,你在采用rewrite规则的时候,很多sql语句就无法通过URL被传递进来,因为他们不能被正则正常解析。
当然,你也可以想象,如果你的URL是1-0-0-1-0-1-0-1-1-1.html你能知道这些位数是干嘛的不?这种情况用于搜索比较常见,因为搜索的条件会比较复杂,也会比较容易被用来做注入。
如果根据ID取文章之类的,你show-1-1.html别人是知道你的ID为多少,但已经不太容易注入了吧?
新手只是要学习一下rewrite规则了。了解一下正则也好HOHO