X
活动推荐

阿里云高性能云主机2折293元/年

企业级性能云服务器限时2折起
新用户5折爆款服务器会场
查看详情 293元/年
阅读模式:

php防sql注入过滤代码

查看:8576  回复:6  类型:  来源:php自学网  标签 php
防止sql注入的函数,过滤掉那些非法的字符,提高sql安全性,同时也可以过滤XSS的攻击。
function filter($str)
{
    if (empty($str)) return false;
    $str = htmlspecialchars($str);
    $str = str_replace( '/', "", $str);
    $str = str_replace( '"', "", $str);
    $str = str_replace( '(', "", $str);
    $str = str_replace( ')', "", $str);
    $str = str_replace( 'CR', "", $str);
    $str = str_replace( 'ASCII', "", $str);
    $str = str_replace( 'ASCII 0x0d', "", $str);
    $str = str_replace( 'LF', "", $str);
    $str = str_replace( 'ASCII 0x0a', "", $str);
    $str = str_replace( ',', "", $str);
    $str = str_replace( '%', "", $str);
    $str = str_replace( ';', "", $str);
    $str = str_replace( 'eval', "", $str);
    $str = str_replace( 'open', "", $str);
    $str = str_replace( 'sysopen', "", $str);
    $str = str_replace( 'system', "", $str);
    $str = str_replace( '$', "", $str);
    $str = str_replace( "'", "", $str);
    $str = str_replace( "'", "", $str);
    $str = str_replace( 'ASCII 0x08', "", $str);
    $str = str_replace( '"', "", $str);
    $str = str_replace( '"', "", $str);
    $str = str_replace("", "", $str);
    $str = str_replace("&gt", "", $str);
    $str = str_replace("&lt", "", $str);
    $str = str_replace("<SCRIPT>", "", $str);
    $str = str_replace("</SCRIPT>", "", $str);
    $str = str_replace("<script>", "", $str);
    $str = str_replace("</script>", "", $str);
    $str = str_replace("select","",$str);
    $str = str_replace("join","",$str);
    $str = str_replace("union","",$str);
    $str = str_replace("where","",$str);
    $str = str_replace("insert","",$str);
    $str = str_replace("delete","",$str);
    $str = str_replace("update","",$str);
    $str = str_replace("like","",$str);
    $str = str_replace("drop","",$str);
    $str = str_replace("DROP","",$str);
    $str = str_replace("create","",$str);
    $str = str_replace("modify","",$str);
    $str = str_replace("rename","",$str);
    $str = str_replace("alter","",$str);
    $str = str_replace("cas","",$str);
    $str = str_replace("&","",$str);
    $str = str_replace(">","",$str);
    $str = str_replace("<","",$str);
    $str = str_replace(" ",chr(32),$str);
    $str = str_replace(" ",chr(9),$str);
    $str = str_replace("    ",chr(9),$str);
    $str = str_replace("&",chr(34),$str);
    $str = str_replace("'",chr(39),$str);
    $str = str_replace("<br />",chr(13),$str);
    $str = str_replace("''","'",$str);
    $str = str_replace("css","'",$str);
    $str = str_replace("CSS","'",$str);
    $str = str_replace("<!--","",$str);
    $str = str_replace("convert","",$str);
    $str = str_replace("md5","",$str);
    $str = str_replace("passwd","",$str);
    $str = str_replace("password","",$str);
    $str = str_replace("../","",$str);
    $str = str_replace("./","",$str);
    $str = str_replace("Array","",$str);
    $str = str_replace("or 1='1'","",$str);
    $str = str_replace(";set|set&set;","",$str);
    $str = str_replace("`set|set&set`","",$str);
    $str = str_replace("--","",$str);
    $str = str_replace("OR","",$str);
    $str = str_replace('"',"",$str);
    $str = str_replace("*","",$str);
    $str = str_replace("-","",$str);
    $str = str_replace("+","",$str);
    $str = str_replace("/","",$str);
    $str = str_replace("=","",$str);
    $str = str_replace("'/","",$str);
    $str = str_replace("-- ","",$str);
    $str = str_replace(" -- ","",$str);
    $str = str_replace(" --","",$str);
    $str = str_replace("(","",$str);
    $str = str_replace(")","",$str);
    $str = str_replace("{","",$str);
    $str = str_replace("}","",$str);
    $str = str_replace("-1","",$str);
    $str = str_replace("1","",$str);
    $str = str_replace(".","",$str);
    $str = str_replace("response","",$str);
    $str = str_replace("write","",$str);
    $str = str_replace("|","",$str);
    $str = str_replace("`","",$str);
    $str = str_replace(";","",$str);
    $str = str_replace("etc","",$str);
    $str = str_replace("root","",$str);
    $str = str_replace("//","",$str);
    $str = str_replace("!=","",$str);
    $str = str_replace("$","",$str);
    $str = str_replace("&","",$str);
    $str = str_replace("&&","",$str);
    $str = str_replace("==","",$str);
    $str = str_replace("#","",$str);
    $str = str_replace("@","",$str);
    $str = str_replace("mailto:","",$str);
    $str = str_replace("CHAR","",$str);
    $str = str_replace("char","",$str);
    return $str;
}


更加简便的防止sql注入的方法(推荐使用这个):

 if (!get_magic_quotes_gpc()) // 判断magic_quotes_gpc是否为打开     
 {     
    $post = addslashes($name); // magic_quotes_gpc没有打开的时候把数据过滤     
 }     
 
 $name = str_replace("_", "\_", $name); // 把 '_'过滤掉   
   
 $name = str_replace("%", "\%", $name); // 把' % '过滤掉     
 
 $name = nl2br($name); // 回车转换     
 
 $name= htmlspecialchars($name); // html标记转换    
     
 return $name;


分享到:
1 0

*有问题之处烦请在评论中指出非常感谢!
不是我想要的内容,继续搜索:

扫描二维码手机查看

最新评论:
网站/shl设计  发表于 2017-10-19 08:31:55  中国北京北京
沙发
alert你是怎么过滤的,就像<Script Language="JavaScript"> alert("hello word!"); </Script> 回复
站长 回复 网站/shl设计 用htmlspecialchars()转义的、
2017-10-19 15:14 中国广东深圳 回复
网站/shl设计  发表于 2017-10-19 08:35:26  中国北京北京
板凳
还有特殊字符'<br /> 就是textarea里的过滤 回复
站长 回复 网站/shl设计 addslashes()和htmlspecialchars()
2017-10-19 15:16 中国广东深圳 回复
网站/shl设计  发表于 2017-10-19 11:25:45  中国北京北京
地板
"/><script>alert(document.cookie)</script><!--<br /> <script>alert(document.cookie)</script><!--<br /> "onclick="alert(document.cookie) 回复
站长 回复 网站/shl设计 在php.ini中设置了session.cookie_httponly = On,cookie用js获取不到的。
2017-10-19 15:18 中国广东深圳 回复
回复:[主题]
表情:
 提交评论
清空

发布评论:


登录:
  表情:
评论话题
推荐阅读:
最简单的Banner轮播淡入淡出效果代码及实现思路(附带源码)   阅读:11690php冒泡排序法   阅读:11794mysql中文分词全文搜索索引讯搜的安装   阅读:5576php压缩页面的html代码一行显示   阅读:5985爱编程,也爱健康   阅读:3425centos 7 修改系统屏幕分辨率   阅读:37261什么是天使轮?什么是A轮融资?B轮融资?   阅读:3401php+redis实现消息队列   阅读:11212PHP 鸟哥:我也曾经是“不适合”编程的人   阅读:11623php打印三角形   阅读:6459linux php7编译安装mongodb扩展   阅读:6976面试的时候和你谈理想,是理想or入坑?   阅读:8193移动端js触摸touch详解(附带案例源码)   阅读:14102php打印九九加法表   阅读:8091最新centos7 搭建LNMP环境(centos7.2+php7+mysql5.7+nginx1.11+redis3.2)   阅读:9326mongodb设置shell开机启动脚本   阅读:7906shell脚本破解十位数内的所有纯数字rar加密压缩包脚本   阅读:7383比phpexcel还要简单的excel CSV 一键导入数据到数据库   阅读:4269mysql数据一键导出到csv文件   阅读:4650“米粉节”背后的故事——小米网抢购系统开发实践   阅读:3438mysql5.7主从同步中binlog同步模式详解   阅读:4410centos 7 设置 nginx-1.11.10 开机启动   阅读:6967linux php7编译安装mongodb扩展   阅读:6976爱编程,也爱健康   阅读:3425centos 7 设置 nginx-1.11.10 开机启动   阅读:6967html5 离线缓存的使用   阅读:3595最简单的Banner轮播淡入淡出效果代码及实现思路(附带源码)   阅读:11690最新centos7 搭建LNMP环境(centos7.2+php7+mysql5.7+nginx1.11+redis3.2)   阅读:9326php打印三角形   阅读:6459TCP的三次握手(建立连接)和四次挥手(关闭连接)   阅读:2159霍金24岁博士毕业论文在线预览   阅读:4691mysql5.7主从同步配置   阅读:2833最简单的Banner轮播左右切换效果代码及实现思路(附带源码)   阅读:27776web性能测试工具ab的测试方法   阅读:3888shell脚本统计当前服务器并发连接数   阅读:5862php 读取和设置redis的键值   阅读:6352霍金24岁博士毕业论文在线预览   阅读:4691十张GIF让你弄懂递归等概念   阅读:5087最简单的Banner轮播左右切换效果代码及实现思路(附带源码)   阅读:27776移动端js触摸touch详解(附带案例源码)   阅读:14102linux top命令详解   阅读:7573网站局部小图片优化-base64编码图片   阅读:8073移动端js触摸touch详解(附带案例源码)   阅读:14102一步步带你,如何网站架构   阅读:3391linux时间戳有趣的情人节秒1234567890   阅读:4616shell脚本统计当前服务器并发连接数   阅读:5862用php从1乘到100的值   阅读:5387html5 离线缓存的使用   阅读:3595封装php redis缓存操作类   阅读:7485centos 7搭建zabbix3.4   阅读:4972