PHP防注入内容过滤方法
发布:smiling 来源: PHP粉丝网 添加日期:2014-08-21 15:30:40 浏览: 评论:0
内容过滤多是为了防止一些安全注入或者是跨域操作了,下面我们一起来看看我整理的几个简单的防注入内容过滤程序代码,希望文章对各位同学会有所帮助.
方法一,过滤一些没用的内容
过滤没用的信息比较严格,有用的可能也输入不进去,可以从网上找找其他的过滤方法,代码如下:
- function checkHtml($data){
- $ret = preg_match("/['.,:;*?~`!@#$%^&+=)(<>{}]|]|[|/|\|"||/",$data);
- if ($ret == 1) {
- return false; exit;
- } else {
- return true;
- }
- }
例2,过滤一些html标签,代码如下:
- function uh($str)
- {
- $farr = array(
- "/s+/", //过滤多余的空白
- "/<(/?)(scripti?framestylehtmlbodytitlelinkmeta?%)([^>]*?)>/isU", //过滤 <script 等可能引入恶意内容或恶意改变显示布局的代码,如果不需要插入flash等,还可以加入<object的过滤
- "/(<[^>]*)on[a-zA-Z]+s*=([^>]*>)/isU", //过滤javascript的on事件
- );
- $tarr = array(
- " ", //开源代码phpfensi.com
- "<\1\2\3>", //如果要直接清除不安全的标签,这里可以留空
- "\1\2",
- );
- $str = preg_replace( $farr,$tarr,$str);
- return $str;
- }
方法三,上面两种方法都是把要过滤内容放在了程序中,下面我把要过滤的内容放到一个txt文本,只要读文件内容进行判断即可,这样方便维护要过滤的内容,代码如下:
- <?php
- if($_POST)
- {
- //获取文件内容转为数组两种方法:
- /*
- $fcon = file_get_contents("./filter.txt");
- $filter_word = explode("n",$fcon);
- */
- $filter_word = file("./filter.txt");
- //$filter_word = array("test1","test2","test3","test4");
- $str = $_POST["mess"];
- for($i=0;$i<count($filter_word);$i++)
- {
- if(preg_match("/".(trim($filter_word[$i]))."/i",$str))
- {
- echo "<script>alert('您输入的内容含非法内容,请重输!');</script>";
- echo "<a href='index.php'>返回</a>";
- exit;
- }
- }
- echo "您输入的内容是:".$str;
- }
- ?>
- <h2>测试过滤是否生效:</h2>
- <form action="<?php echo $_SERVER['PHP_SELF']; ?>" method="post">
- <p><textarea name="mess" cols="40" rows="4"></textarea></p>
- <p><input type="submit" name="sub" value="send"></p>
- </form>
Tags: PHP防注入 PHP内容过滤
- 上一篇:防御PHP木马攻击的方法小结
- 下一篇:PHP验证码生成与验证例子
相关文章
- ·PHP防注入之程序里的敏感信息(2014-08-22)
- ·PHP整站防注入程序(2014-08-23)
- ·php sql注入与防注入经典案例分析(2014-08-23)
- ·经典php防注入函数代码(2014-08-25)
- ·php通用防注入与注入详细说明(2014-08-25)
- ·php防注入代码方法,过滤所有GET POST(2014-08-25)
- ·php简单实现sql防注入的方法(2021-07-29)
推荐文章
热门文章
最新评论文章
- 写给考虑创业的年轻程序员(10)
- PHP新手上路(一)(7)
- 惹恼程序员的十件事(5)
- PHP邮件发送例子,已测试成功(5)
- 致初学者:PHP比ASP优秀的七个理由(4)
- PHP会被淘汰吗?(4)
- PHP新手上路(四)(4)
- 如何去学习PHP?(2)
- 简单入门级php分页代码(2)
- php中邮箱email 电话等格式的验证(2)