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 相关文章推荐
IIS6的PHP最佳配置方法
Mar 19 PHP
PHP5+UTF8多文件上传类
Oct 17 PHP
理解和运用PHP中的多态性[译]
Aug 02 PHP
PHP gbk环境下json_dencode传送来的汉字
Nov 13 PHP
php读取excel文件示例分享(更新修改excel)
Feb 27 PHP
ThinkPHP CURD方法之field方法详解
Jun 18 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
PHP调用wsdl文件类型的接口代码分享
Nov 19 PHP
PDO预处理语句PDOStatement对象使用总结
Nov 20 PHP
smarty模板引擎使用内建函数foreach循环取出所有数组值的方法
Jan 22 PHP
Zend Framework入门教程之Zend_View组件用法示例
Dec 09 PHP
老生常谈PHP面向对象之命令模式(必看篇)
May 24 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代码包装修正版
2008/03/15 PHP
采用header定义为文件然后readfile下载(隐藏下载地址)
2014/01/31 PHP
在TP5数据库中四个字段实现无限分类的示例
2019/10/18 PHP
php7 图形用户界面GUI 开发示例
2020/02/22 PHP
动态加载script文件的两种方法
2013/08/15 Javascript
getJSON调用后台json数据时函数被调用两次的原因猜想
2013/09/29 Javascript
9款2014最热门jQuery实用特效推荐
2014/12/07 Javascript
jQuery中size()方法用法实例
2014/12/27 Javascript
js实现的Easy Tabs选项卡用法实例
2015/09/06 Javascript
Sea.JS知识总结
2016/05/05 Javascript
基于Vuejs实现购物车功能
2016/08/02 Javascript
JS获取checkbox的个数简单实例
2016/08/19 Javascript
node.js路径处理方法以及绝对路径详解
2021/03/04 Javascript
浅谈Node.js CVE-2017-14849 漏洞分析(详细步骤)
2017/11/10 Javascript
Vue 组件(component)教程之实现精美的日历方法示例
2018/01/08 Javascript
Array数组对象中的forEach、map、filter及reduce详析
2018/08/02 Javascript
vue-router的使用方法及含参数的配置方法
2018/11/13 Javascript
微信小程序自定义导航栏实例代码
2019/04/05 Javascript
微信小程序如何访问公众号文章
2019/07/08 Javascript
layer提示框添加多个按钮选择的实例
2019/09/12 Javascript
在python中的socket模块使用代理实例
2014/05/29 Python
Python-嵌套列表list的全面解析
2016/06/08 Python
python对json的相关操作实例详解
2017/01/04 Python
pandas数据框,统计某列数据对应的个数方法
2018/04/11 Python
python处理csv中的空值方法
2018/06/22 Python
Python面向对象之类和对象实例详解
2018/12/10 Python
python pandas写入excel文件的方法示例
2019/06/25 Python
详解如何从TensorFlow的mnist数据集导出手写体数字图片
2019/08/05 Python
利用Tensorflow构建和训练自己的CNN来做简单的验证码识别方式
2020/01/20 Python
Python实现自动访问网页的例子
2020/02/21 Python
python中altair可视化库实例用法
2021/01/26 Python
墨西哥运动服饰和鞋网上商店:Netshoes墨西哥
2016/07/28 全球购物
WebSphere面试题:在WebSphere里面如何部署一个应用
2015/08/02 面试题
Laravel的加密解密与哈希实例讲解
2021/03/24 PHP
务工证明怎么写
2015/06/18 职场文书
HTML中link标签属性的具体用法
2023/05/07 HTML / CSS