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 相关文章推荐
PHP生成网页快照 不用COM不用扩展.
Feb 11 PHP
php数据结构 算法(PHP描述) 简单选择排序 simple selection sort
Aug 09 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
php利用scws实现mysql全文搜索功能的方法
Dec 25 PHP
WampServer下安装多个版本的PHP、mysql、apache图文教程
Jan 07 PHP
PHP微信红包生成代码分享
Oct 06 PHP
PHP将身份证正反面两张照片合成一张图片的代码
Apr 08 PHP
php封装一个异常的处理类
Jun 08 PHP
php注册系统和使用Xajax即时验证用户名是否被占用
Aug 31 PHP
PHP实现用户登录的案例代码
May 10 PHP
PHP如何防止XSS攻击与XSS攻击原理的讲解
Mar 22 PHP
Laravel获取当前请求的控制器和方法以及中间件的例子
Oct 11 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的库,结果发现很多东西
2006/12/31 PHP
php笔记之常用文件操作
2010/10/12 PHP
PHP中使用unset销毁变量并内存释放问题
2012/07/05 PHP
PHP禁止个别IP访问网站
2013/10/30 PHP
PHP中模拟链表和链表的基本操作示例
2016/02/27 PHP
php-7.3.6 编译安装过程
2020/02/11 PHP
PHP实现创建一个RPC服务操作示例
2020/02/23 PHP
javascript 防止刷新,后退,关闭
2010/08/07 Javascript
js 数据类型转换总结笔记
2011/01/17 Javascript
jquery查找tr td 示例模拟
2014/05/08 Javascript
node.js中的fs.lstatSync方法使用说明
2014/12/16 Javascript
jQuery实现高亮显示的方法
2015/03/10 Javascript
jquery实现全屏滚动
2015/12/28 Javascript
Nodejs获取网络数据并生成Excel表格
2020/03/31 NodeJs
js实现获取两个日期之间所有日期的方法
2016/06/17 Javascript
JavaScript重定向URL参数的两种方法小结
2016/10/19 Javascript
JavaScript数据结构之广义表的定义与表示方法详解
2017/04/12 Javascript
微信小程序功能之全屏滚动效果的实现代码
2018/11/22 Javascript
基于layui的下拉列表的数据回显方法
2019/09/24 Javascript
[04:52]2015国际邀请赛LGD战队晋级之路
2015/08/14 DOTA
[01:35:13]DOTA2-DPC中国联赛 正赛 DLG vs PHOENIX BO3 第一场 1月18日
2021/03/11 DOTA
python笔记(2)
2012/10/24 Python
利用Hyperic调用Python实现进程守护
2018/01/02 Python
Opencv实现抠图背景图替换功能
2019/05/21 Python
Python小程序 控制鼠标循环点击代码实例
2019/10/08 Python
Python帮你识破双11的套路
2019/11/11 Python
python如何写出表白程序
2020/06/01 Python
详解css3中的伪类before和after常见用法
2020/11/17 HTML / CSS
canvas 橡皮筋式线条绘图应用方法
2019/02/13 HTML / CSS
what is the difference between ext2 and ext3
2015/08/25 面试题
校园新闻广播稿
2014/01/10 职场文书
护士节策划方案
2014/05/19 职场文书
工作检讨书怎么写
2014/10/10 职场文书
2015年城管执法工作总结
2015/07/23 职场文书
如果用一句诗总结你的上半年,你会用哪句呢?
2019/07/16 职场文书
修辞手法有哪些?
2019/08/29 职场文书