所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求的查询字符串,最终达到欺骗服务器执行恶意的SQL命令。

我们永远不要信任用户的输入,我们必须认定用户输入的数据都是不安全的,我们都需要对用户输入的数据进行过滤处理。

1.以下实例中,输入的用户名必须为字母、数字及下划线的组合,且用户名长度为 8 到 20 个字符之间:

if (preg_match("/^\w{8,20}$/", $_GET['username'], $matches)){ $result = mysql_query("SELECT * FROM users        WHERE username=$matches[0]");} else { echo "username 输入异常";}

让我们看下在没有过滤特殊字符时,出现的SQL情况:

// 设定$name 中插入了我们不需要的SQL语句
$name = "Qadir'; DELETE FROM users;";
mysql_query("SELECT * FROM users WHERE name='{$name}'");

更多相关文章

  1. MySQL 5.7.9 服务无法启动-“NET HELPMSG 3534”的解决方法
  2. MySQL系列多表连接查询92及99语法示例详解教程
  3. Linux下MYSQL 5.7 找回root密码的问题(亲测可用)
  4. MySQL 什么时候使用INNER JOIN 或 LEFT JOIN
  5. ES6 变量声明,箭头函数,数组方法,解构赋值,JSON,类与继承,模块化练习
  6. 浅谈Java中Collections.sort对List排序的两种方法
  7. Python list sort方法的具体使用
  8. python list.sort()根据多个关键字排序的方法实现
  9. android上一些方法的区别和用法的注意事项

随机推荐

  1. 如果我对名称中方括号的输入使用jQuery s
  2. IIS7+PHP上传图片成功但却不能访问401.3
  3. 使用PHP将XML Spreadsheet工作簿解析为JS
  4. 配置文件定义常量 config.inc.php
  5. centos6和centos7手动扩展PHP的IMAP模块
  6. php文件显示代码在Chrome
  7. PHP递归函数删除所有子节点导致stackover
  8. PHP 使用 debug_print_backtrace() 或 de
  9. 在PHP中写入xml时,从字符串中删除&amp
  10. PHP-从多维数组中删除重复值