贴心
全国7×24小时客服热线
安全
病毒杀除率高于99%
稳定
网站可用性高于99.9%
实力
服务68家上市企业及集团公司
点击数:11702015-07-21 11:25:29 来源: 外贸网站建设,深圳外贸网站建设,深圳网站建设,外贸商城网站制作-亿恩科技
内容过滤多是为了防止一些安全注入或者是跨域操作了,下面我们一起来看看我整理的几个简单的防注入内容过滤程序代码,希望文章对各位同学会有所帮助.
方法一,过滤一些没用的内容
过滤没用的信息比较严格,有用的可能也输入不进去,可以从网上找找其他的过滤方法,代码如下:
- 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(
- " ", //开源代码vcphp.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>