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下几个常用的去空、分组、调试数组函数
Feb 22 PHP
PHP 用数组降低程序的时间复杂度
Dec 04 PHP
用PHP实现递归循环每一个目录
Aug 08 PHP
PHP通过header实现文本文件下载的代码
Aug 08 PHP
php日期转时间戳,指定日期转换成时间戳
Jul 17 PHP
基于在生产环境中使用php性能测试工具xhprof的详解
Jun 03 PHP
PHP使用PHPMailer发送邮件的简单使用方法
Nov 12 PHP
php制作unicode解码工具(unicode编码转换器)代码分享
Dec 24 PHP
php代码审计比较有意思的例子
May 07 PHP
PHP面向对象编程之深入理解方法重载与方法覆盖(多态)
Dec 24 PHP
php探针使用原理和技巧讲解
Sep 17 PHP
PHP哈希表实现算法原理解析
Dec 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中的日期处理方法集锦
2007/01/02 PHP
用PHP生成html分页列表的代码
2007/03/18 PHP
Smarty Foreach 使用说明
2010/03/23 PHP
php中怎么搜索相关联数组键值及获取之
2013/10/17 PHP
PHP PDO fetch 模式各种参数的输出结果一览
2015/01/07 PHP
Zend Framework教程之Zend_Config_Ini用法分析
2016/03/23 PHP
JavaScript高级程序设计 阅读笔记(十七) js事件
2012/08/14 Javascript
Array.prototype.concat不是通用方法反驳[译]
2012/09/20 Javascript
JavaScript实现url地址自动检测并添加URL链接示例代码
2013/11/12 Javascript
jquery判断元素是否隐藏的多种方法
2014/05/06 Javascript
JavaScript动态创建form表单并提交的实现方法
2015/12/10 Javascript
js格式化时间的简单实例
2016/11/27 Javascript
Jquery uploadify 多余的Get请求(404错误)的解决方法
2017/01/26 Javascript
JavaScript验证知识整理
2017/03/24 Javascript
了解VUE的render函数的使用
2017/06/08 Javascript
Vue.js通用应用框架-Nuxt.js的上手教程
2017/12/25 Javascript
深入理解js 中async 函数的含义和用法
2018/05/13 Javascript
mpvue开发音频类小程序踩坑和建议详解
2019/03/12 Javascript
vue 导航锚点_点击平滑滚动,导航栏对应变化详解
2020/08/10 Javascript
基于elementUI竖向表格、和并列的案例
2020/10/26 Javascript
Django实现简单分页功能的方法详解
2017/12/05 Python
Pycharm之快速定位到某行快捷键的方法
2019/01/20 Python
python实现高斯判别分析算法的例子
2019/12/09 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
Python3 字典dictionary入门基础附实例
2020/02/10 Python
Python使用Pyqt5实现简易浏览器(最新版本测试过)
2020/04/27 Python
pytorch学习教程之自定义数据集
2020/11/10 Python
CSS3 旋转立方体问题详解
2020/01/09 HTML / CSS
电子狗项圈:eDog Australia
2019/12/04 全球购物
英国豪华家具和家居用品购物网站:Teddy Beau
2020/10/12 全球购物
创业者是否需要商业计划书?
2014/02/07 职场文书
乡镇网格化管理实施方案
2014/03/23 职场文书
公司晚会策划方案
2014/05/17 职场文书
武当山导游词
2015/02/03 职场文书
餐馆开业致辞
2015/08/01 职场文书
Python 视频画质增强
2022/04/28 Python