PHP网站防SQL注入:参数转整数加转义,挡掉90%攻击

刚刚阅读1回复0
genmulu
genmulu
  • 管理员
  • 注册排名1
  • 经验值3465
  • 级别管理员
  • 主题693
  • 回复0
楼主

很多新手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最基础的安全常识。

本站源码来源于网络收集修改或者交换,甚至可能并非原创,如遇未经考证信息需持审慎态度。若有疑问,可联系本站处理。

本文地址:https://www.genmulu.cn/genmulu/135.html

0
回帖

PHP网站防SQL注入:参数转整数加转义,挡掉90%攻击 期待您的回复!

取消
载入表情清单……
载入颜色清单……
插入网络图片

取消确定

图片上传中
编辑器信息
提示信息