内容过滤多是为了防止一些安全注入或者是跨域操作了,下面我们一起来看看我整理的几个简单的防注入内容过滤程序代码,希望文章对各位同学会有所帮助.
方法一,过滤一些没用的内容
过滤没用的信息比较严格,有用的可能也输入不进去,可以从网上找找其他的过滤方法,代码如下:
- 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",
- "/(<[^>]*)on[a-zA-Z]+s*=([^>]*>)/isU",
- );
- $tarr = array(
- " ",
- "<\1\2\3>",
- "\1\2",
- );
- $str = preg_replace( $farr,$tarr,$str);
- return $str;
- }
方法三,上面两种方法都是把要过滤内容放在了程序中,下面我把要过滤的内容放到一个txt文本,只要读文件内容进行判断即可,这样方便维护要过滤的内容,代码如下:
- <?php
- if($_POST)
- {
-
-
-
-
-
- $filter_word = file("./filter.txt");
-
- $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>
|