标签:异常 通过 web exec use connect 参数 nec die
SQL是一种将SQL代码添加到输入参数中,传递到SQL服务器解析并执行的一种攻击手段
例如where语句后面加 id=-1 OR 1=1 ,这使得查询条件永远为真
例如符号 # 和 -- 都会起到注释作用,SELECT * FROM user WHERE name = ‘james ‘#‘ AND password = ‘123123...‘这个语句在#符号后面的都被注释了,其实就只查询了name=‘james‘而已,--符号同理
根据id查询文章,一般要判断非空和非数字
if(empty($id) || is_int($id)){ die(‘查询错误‘); }
正则过滤
if(empty($name) || !preg_match("/^[a-zA-Z0-9]{6,}$",$name)){ die(‘用户名格式错误‘); }
$db = mysqli_connect(‘localhost‘,$username,$pwd,$database); $sql = "SELECT id,name FROM user WHERE name = ? AND password = ?"; $stmt = mysqli_prepare($db,$sql); mysqli_stmt_bind_param($stmt,‘ss‘,$name,$password); mysqli_stmt_execute($stmt); mysqli_stmt_bind_result($stmt,$id,$name); mysqli_stmt_fetch($stmt);
标签:异常 通过 web exec use connect 参数 nec die
原文地址:http://www.cnblogs.com/zgx123/p/7821233.html