php过滤表单提交的html等危险代码


Posted in PHP onNovember 03, 2014

PHP过滤提交表单的html代码里可能有被利用引入外部危险内容的代码。例如,有些时候用户提交表单中含有html内容,但这可能造成显示页面布局混乱,需要过滤掉。

方法一:

//get post data

 function PostGet($str,$post=0)

 {

  empty($str)?die('para is null'.$str.'!'):'';

  

  if( $post ) 

  {

   if( get_magic_quotes_gpc() )

   {

    return htmlspecialchars(isset($_POST[$str])?$_POST

[$str]:'');

   }

   else

   {

    return addslashes(htmlspecialchars(isset($_POST[$str])?

$_POST[$str]:''));

   }

   

  }

  else

  {

   if( get_magic_quotes_gpc() )

   {

    return htmlspecialchars(isset($_GET[$str])?$_GET[$str]:''); 

   }

   else

   {

    return addslashes(htmlspecialchars(isset($_GET[$str])?

$_GET[$str]:'')); 

   }

  }

 }

方法二:

function uhtml($str)     

{     

    $farr = array(     

        "/\s+/", //过滤多余空白     

         //过滤 <script>等可能引入恶意内容或恶意改变显示布局的代码,如果不需要插入flash等,还可以加入<object>的过滤     

        "/<(\/?)(script|i?frame|style|html|body|title|link|meta|\?|\%)([^>]*?)>/isU",    

        "/(<[^>]*)on[a-zA-Z]+\s*=([^>]*>)/isU",//过滤javascript的on事件     

   );     

   $tarr = array(     

        " ",     

        "<\1\2\3>",//如果要直接清除不安全的标签,这里可以留空     

        "\1\2",     

   );     

  $str = preg_replace( $farr,$tarr,$str);     

   return $str;     

} 

很实用的方法吧,希望对大家能有所帮助

PHP 相关文章推荐
flash用php连接数据库的代码
Apr 21 PHP
rephactor 优秀的PHP的重构工具
Jun 09 PHP
php中将时间差转换为字符串提示的实现代码
Aug 08 PHP
php中stream(流)的用法
Mar 25 PHP
php页面函数设置超时限制的方法
Dec 01 PHP
PHP中foreach()用法汇总
Jul 02 PHP
win平台安装配置Nginx+php+mysql 环境
Jan 12 PHP
CodeIgniter连贯操作的底层原理分析
May 17 PHP
微信第三方登录(原生)demo【必看篇】
May 26 PHP
PHP实现的堆排序算法详解
Aug 17 PHP
PHP开发实现快递查询功能详解
Apr 08 PHP
JS中彻底删除JSON对象组成的数组中的元素
Sep 22 PHP
PHP屏蔽过滤指定关键字的方法
Nov 03 #PHP
php中count获取多维数组长度的方法
Nov 03 #PHP
Codeigniter(CI)框架分页函数及相关知识
Nov 03 #PHP
ThinkPHP实现带验证码的文件上传功能实例
Nov 01 #PHP
ThinkPHP模板之变量输出、自定义函数与判断语句用法
Nov 01 #PHP
ThinkPHP查询语句与关联查询用法实例
Nov 01 #PHP
ThinkPHP分组下自定义标签库实例
Nov 01 #PHP
You might like
ThinkPHP3.1新特性之对页面压缩输出的支持
2014/06/19 PHP
php从完整文件路径中分离文件目录和文件名的方法
2015/03/13 PHP
thinkphp实现图片上传功能
2016/01/13 PHP
php扩展开发入门demo示例
2019/09/23 PHP
Laravel-admin之修改操作日志的方法
2019/09/30 PHP
通过MSXML2自动获取QQ个人头像及在线情况(给初学者)
2007/01/22 Javascript
在新窗口打开超链接的方法小结
2013/04/14 Javascript
jquery数组封装使用方法分享(jquery数组遍历)
2014/03/25 Javascript
js冒泡、捕获事件及阻止冒泡方法详细总结
2014/05/08 Javascript
javascript实现的一个带下拉框功能的文本框
2014/05/08 Javascript
JavaScript动态添加列的方法
2015/03/25 Javascript
javascript中动态函数用法实例分析
2015/05/14 Javascript
纯JavaScript实现的分页插件实例
2015/07/14 Javascript
jquery在ie7下选择器的问题导致append失效的解决方法
2016/01/10 Javascript
JS实现简单的天数计算器完整实例
2017/04/28 Javascript
JS 中可以提升幸福度的小技巧(可以识别更多另类写法)
2018/07/28 Javascript
浅谈VUE单页应用首屏加载速度优化方案
2018/08/28 Javascript
ExtJs使用自定义插件动态保存表头配置(隐藏或显示)
2018/09/25 Javascript
layui的面包屑或者表单不显示的解决方法
2019/09/05 Javascript
vue实现表单录入小案例
2019/09/27 Javascript
微信小程序返回箭头跳转到指定页面实例解析
2019/10/08 Javascript
vue-property-decorator用法详解
2019/12/12 Javascript
详细分析React 表单与事件
2020/07/08 Javascript
Python的Flask框架的简介和安装方法
2015/11/13 Python
Python实现备份MySQL数据库的方法示例
2018/01/11 Python
详解Python Matplot中文显示完美解决方案
2019/03/07 Python
如何利用Python模拟GitHub登录详解
2019/07/15 Python
Python3 列表,数组,矩阵的相互转换的方法示例
2019/08/05 Python
Python多线程:主线程等待所有子线程结束代码
2020/04/25 Python
python根据字典的键来删除元素的方法
2020/08/16 Python
德国柯吉澳趣味家居:Koziol
2017/08/24 全球购物
将相和教学反思
2014/02/04 职场文书
竞选班干部演讲稿
2014/04/24 职场文书
工会优秀工作者事迹
2014/08/17 职场文书
学习十八大的感悟
2015/08/11 职场文书
好段摘抄大全(48句)
2019/08/08 职场文书