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 相关文章推荐
对javascript和select部件的结合运用
Oct 09 PHP
PHP 5.0对象模型深度探索之类的静态成员
Mar 27 PHP
使用eAccelerator加密PHP程序
Oct 03 PHP
php面向对象全攻略 (十四) php5接口技术
Sep 30 PHP
在WINDOWS中设置计划任务执行PHP文件的方法
Dec 19 PHP
修改PHP的memory_limit限制的方法分享
Feb 21 PHP
简单实用的.net DataTable导出Execl
Oct 28 PHP
php中操作memcached缓存进行增删改查数据的实现代码
Aug 15 PHP
Yii净化器CHtmlPurifier用法示例(过滤不良代码)
Jul 15 PHP
购物车实现的几种方式优缺点对比
May 02 PHP
PHP实现的支付宝支付功能示例
Mar 26 PHP
PHP示例演示发送邮件给某个邮箱
Apr 03 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切割页面div内容的实现代码分享
2012/07/31 PHP
分享一段PHP制作的中文拼音首字母工具类
2014/12/11 PHP
CI框架AR数据库操作常用函数总结
2016/11/21 PHP
Laravel中如何增加自定义全局函数详解
2017/05/09 PHP
yii2.0整合阿里云oss的示例代码
2017/09/19 PHP
Laravel框架自定义公共函数的引入操作示例
2019/04/16 PHP
基于jQuery的实现简单的分页控件
2010/10/10 Javascript
jquery ajax属性async(同步异步)示例
2013/11/05 Javascript
JS中的THIS和WINDOW.EVENT.SRCELEMENT详解
2015/05/25 Javascript
JS实现将数字金额转换为大写人民币汉字的方法
2016/08/02 Javascript
jquery ajax后台返回list,前台用jquery遍历list的实现
2016/10/30 Javascript
详解Vue中状态管理Vuex
2017/05/11 Javascript
zTree jQuery 树插件的使用(实例讲解)
2017/09/25 jQuery
基于axios封装fetch方法及调用实例
2018/02/05 Javascript
JS常见构造模式实例对比分析
2018/08/27 Javascript
微信小程序实现文字从右向左无限滚动
2020/11/18 Javascript
如何在现代JavaScript中编写异步任务
2021/01/31 Javascript
pandas值替换方法
2018/07/10 Python
浅析Python四种数据类型
2018/09/26 Python
详解python运行三种方式
2019/05/13 Python
Python学习笔记之函数的定义和作用域实例详解
2019/08/13 Python
Python调用钉钉自定义机器人的实现
2020/01/03 Python
如何在mac下配置python虚拟环境
2020/07/06 Python
ProBikeKit德国:在线公路自行车专家
2018/06/03 全球购物
几个人围成一圈的问题
2013/09/26 面试题
如果NULL定义成#define NULL((char *)0)难道不就可以向函数传入不加转换的NULL了吗
2012/02/15 面试题
毕业生机械建模求职信
2013/10/14 职场文书
2014年清明节寄语
2014/04/03 职场文书
遗嘱继承公证书
2014/04/09 职场文书
电钳工人个人求职信
2014/05/10 职场文书
社区清明节活动总结
2014/07/04 职场文书
2014迎国庆演讲稿
2014/09/19 职场文书
导游词之神仙居景区
2019/11/15 职场文书
简单总结SpringMVC拦截器的使用方法
2021/06/28 Java/Android
Vue h函数的使用详解
2022/02/18 Vue.js
Java 通过手写分布式雪花SnowFlake生成ID方法详解
2022/04/07 Java/Android