用htmlspecialchars($_POST['id']);
它可以把单引号,双引号给转成不能执行的url编码!
这个很重要,因为sql注入,要分为两个意思来解释: 让php执行php代码,让mysql执行mysql代码!php执行很难,必需通过双引号或单引号,先结束你原来的php语句,再开始攻击者的语句!
所以一定要先对所有传过来的变量进行:htmlspecialchars($_POST['id']);
所有post,get的值全要先滤一遍,没有坏处的!不能执行php语句后,攻击者会想办法执行mysql语句,如 or 1=1
这时你就要对所有mysql语句进行过滤,方法很简单,用引号!select * from db where id='$id'这样基本就安全了!当然,你只要数字或字母或你想要的,你随便做个规则就行了,php也有相关函数可以用,is_numeric,is_array等
但不管哪种方式,你都要先htmlspecialcharsdz,phpwind等漏洞10个有8个,都是没有滤传递参数造成的!更多方法,等待它人继续!