很多新手PHP代码里,用$_GET接收参数,直接拼到数据库查询里,结果网站被SQL注入,今天说一下最基础的PHP防注入方法。
为什么会注入
你直接把用户传过来的参数拼到SQL语句里,比如$id = $_GET['id']; $sql = "select * from post where id = $id";,用户在id后面加个SQL语句,就能直接操作你的数据库,偷数据、删表。
怎么防
简单的方法,接收的参数先转成整数,比如$id = intval($_GET['id']);,用户传进来的字符串会自动变成0,注入不了。字符串参数用mysql_real_escape_string转义,把特殊字符转义掉,就拼不进SQL语句了。
更安全的是用预处理语句,参数和SQL分开传,新手先做参数类型转换和转义,就能挡掉90%的注入。
别随便把用户传的参数直接拼SQL,这是PHP最基础的安全常识。
本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。
0