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之第三天
Oct 09 PHP
php smarty模版引擎中的缓存应用
Dec 11 PHP
PHP 数据结构 算法描述 冒泡排序 bubble sort
Jul 10 PHP
php实现微信公众平台账号自定义菜单类
Dec 02 PHP
thinkPHP中验证码的简单使用方法
Dec 26 PHP
浅谈mysql_query()函数的返回值问题
Sep 05 PHP
PHP foreach遍历多维数组实现方式
Nov 16 PHP
php利用imagemagick实现复古老照片效果实例
Feb 16 PHP
PHP基于自定义函数生成笛卡尔积的方法示例
Sep 30 PHP
详解如何实现Laravel的服务容器的方法示例
Apr 15 PHP
Laravel推荐使用的十个辅助函数
May 10 PHP
ThinkPHP 5.x远程命令执行漏洞复现
Sep 23 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
web目录下不应该存在多余的程序(安全考虑)
2012/05/09 PHP
php 在线导入mysql大数据程序
2015/06/11 PHP
PHP各种异常和错误的拦截方法及发生致命错误时进行报警
2016/01/19 PHP
PHP JWT初识及其简单示例
2018/10/10 PHP
用于判断用户注册时,密码强度的JS代码
2009/01/01 Javascript
JAVASCRIPT style 中visibility和display之间的区别
2010/01/22 Javascript
javascript入门基础之私有变量
2010/02/23 Javascript
可以将word转成html的js代码
2010/04/11 Javascript
关于flash遮盖div浮动层的解决方法
2010/07/17 Javascript
利用百度地图JSAPI生成h7n9禽流感分布图实现代码
2013/04/15 Javascript
js replace 与replaceall实例用法详解
2013/08/03 Javascript
Javascript解析URL方法详解
2014/12/05 Javascript
分享JavaScript与Java中MD5使用两个例子
2015/12/23 Javascript
COM组件中调用JavaScript函数详解及实例
2017/02/23 Javascript
详解vue2.0的Element UI的表格table列时间戳格式化
2017/06/13 Javascript
vue+echarts实现动态绘制图表及异步加载数据的方法
2018/10/17 Javascript
详解vue中使用vue-quill-editor富文本小结(图片上传)
2019/04/24 Javascript
JSON是什么?有哪些优点?JSON和XML的区别?
2019/04/29 Javascript
vue安装遇到的5个报错及解决方法
2019/06/12 Javascript
JS apply用法总结和使用场景实例分析
2020/03/14 Javascript
从0到1学习JavaScript编写贪吃蛇游戏
2020/07/28 Javascript
[01:29]Ti4循环赛第三日精彩回顾
2014/07/13 DOTA
Python实现1-9数组形成的结果为100的所有运算式的示例
2017/11/03 Python
python用BeautifulSoup库简单爬虫实例分析
2018/07/30 Python
python使用PIL给图片添加文字生成海报示例
2018/08/17 Python
浅谈Python反射 &amp; 单例模式
2019/03/21 Python
Pytorch 实现sobel算子的卷积操作详解
2020/01/10 Python
python 字符串格式化的示例
2020/09/21 Python
python利用faker库批量生成测试数据
2020/10/15 Python
Spartoo英国:欧洲最大的网上鞋店
2016/09/13 全球购物
世界上最大的售后摩托车零配件超市:J&P Cycles
2017/12/08 全球购物
Python文件操作的面试题
2013/06/22 面试题
关于中国梦的演讲稿
2014/04/23 职场文书
团队激励口号
2014/06/06 职场文书
详解Python牛顿插值法
2021/05/11 Python
学会用Python实现滑雪小游戏,再也不用去北海道啦
2021/05/20 Python