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 相关文章推荐
Parse正式发布开源PHP SDK
Aug 11 PHP
php中addslashes函数与sql防注入
Nov 17 PHP
php常用的url处理函数总结
Nov 19 PHP
php中解析带中文字符的url函数分享
Jan 20 PHP
php简单实现查询数据库返回json数据
Apr 16 PHP
谈谈 PHP7新增功能
Dec 16 PHP
php文件类型MIME对照表(比较全)
Oct 07 PHP
php 反斜杠处理函数addslashes()和stripslashes()实例详解
Dec 25 PHP
thinkPHP框架实现图像裁剪、缩放、加水印的方法
Mar 14 PHP
PHP检测接口Traversable用法详解
Dec 29 PHP
php实现微信公众平台发红包功能
Jun 14 PHP
Laravel 微信小程序后端搭建步骤详解
Nov 26 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
PHP开发不能违背的安全规则 过滤用户输入
2011/05/01 PHP
php实现的DateDiff和DateAdd时间函数代码分享
2014/08/16 PHP
PHP实现防止表单重复提交功能【基于token验证】
2018/05/24 PHP
thinkphp5.1框架模板赋值与变量输出示例
2020/05/25 PHP
javascript生成/解析dom的CDATA类型的字段的代码
2007/04/22 Javascript
javascript options属性集合操作代码
2009/12/28 Javascript
JQuery文本框高亮显示插件代码
2011/04/02 Javascript
体验js中splice()的强大(插入、删除或替换数组的元素)
2013/01/16 Javascript
js批量设置样式的三种方法不推荐使用with
2013/02/25 Javascript
jquery 获取表单元素里面的值示例代码
2013/07/28 Javascript
javascript中文本框中输入法切换的问题
2013/12/10 Javascript
浅析jQuery EasyUI中的tree使用指南
2014/12/18 Javascript
jQuery实现鼠标悬停显示提示信息窗口的方法
2015/04/30 Javascript
jquery mobile 移动web(5)
2015/12/20 Javascript
Node.js刷新session过期时间的实现方法推荐
2016/05/18 Javascript
jQuery插件版本冲突的处理方法分析
2017/01/16 Javascript
使用 vue.js 构建大型单页应用
2018/02/10 Javascript
微信小程序image图片加载完成监听
2019/08/31 Javascript
js实现坦克大战游戏
2020/02/24 Javascript
python实现的各种排序算法代码
2013/03/04 Python
python定时检查某个进程是否已经关闭的方法
2015/05/20 Python
python打开windows应用程序的实例
2019/06/28 Python
linux centos 7.x 安装 python3.x 替换 python2.x的过程解析
2020/12/14 Python
SmartBuyGlasses荷兰:购买太阳镜和眼镜
2020/03/16 全球购物
Java基础面试题
2012/11/02 面试题
网络维护中文求职信
2014/01/03 职场文书
建筑经济管理专业求职信分享
2014/01/06 职场文书
销售冠军获奖感言
2014/02/03 职场文书
小区物业门卫岗位职责
2014/04/10 职场文书
感恩节活动策划方案
2014/05/16 职场文书
安全施工责任书
2014/08/25 职场文书
副乡长民主生活会个人对照检查材料思想汇报
2014/10/01 职场文书
向雷锋同志学习倡议书
2015/04/27 职场文书
2015年“公民道德宣传日”活动方案
2015/05/06 职场文书
高考要来啦!用Python爬取历年高考数据并分析
2021/06/03 Python
Windows Server 2012 R2服务器安装与配置的完整步骤
2022/07/15 Servers