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文件的实现方法
Mar 19 PHP
ThinkPHP中实例Model方法的区别说明
Aug 21 PHP
ajax取消挂起请求的处理方法
Mar 18 PHP
PHP5中GD库生成图形验证码(有汉字)
Jul 28 PHP
php环境下利用session防止页面重复刷新的具体实现
Jan 09 PHP
php下foreach提示Warning:Invalid argument supplied for foreach()的解决方法
Nov 11 PHP
PHP调用MySQL存储过程并返回值的方法
Dec 26 PHP
php上传文件并显示上传进度的方法
Mar 24 PHP
PHP简单操作MongoDB的方法(安装及增删改查)
May 26 PHP
PHP判断是手机端还是PC端 PHP判断是否是微信浏览器
Mar 15 PHP
PHP自定义错误处理的方法分析
Dec 19 PHP
PHP中ltrim()函数的用法与实例讲解
Mar 28 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核心代码分析require和include的区别
2011/01/02 PHP
解析php中heredoc的使用方法
2013/06/17 PHP
PHP的cURL库简介及使用示例
2015/02/06 PHP
jquery div 居中技巧应用介绍
2012/11/24 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
IE6 hack for js 集锦
2014/09/23 Javascript
跟我学习javascript的闭包
2015/11/16 Javascript
JavaScript中全选、全不选、反选、无刷新删除、批量删除、即点即改入库(在yii框架中操作)的代码分享
2016/11/01 Javascript
jQuery中on方法使用注意事项详解
2017/02/15 Javascript
Bootstrap模态框案例解析
2017/03/05 Javascript
基于vue的短信验证码倒计时demo
2017/09/13 Javascript
Vue 后台管理类项目兼容IE9+的方法示例
2019/02/20 Javascript
JS使用正则表达式提交页面验证的代码
2019/10/16 Javascript
详解JavaScript执行模型
2020/11/16 Javascript
[02:22]2018DOTA2亚洲邀请赛VG赛前采访
2018/04/03 DOTA
[01:33]PWL开团时刻DAY2-开雾与反开雾
2020/10/31 DOTA
Python中内置的日志模块logging用法详解
2016/07/12 Python
windows及linux环境下永久修改pip镜像源的方法
2016/11/28 Python
python多进程实现进程间通信实例
2017/11/24 Python
分数霸榜! python助你微信跳一跳拿高分
2018/01/08 Python
pycharm 配置远程解释器的方法
2018/10/28 Python
Python Image模块基本图像处理操作小结
2019/04/13 Python
numpy数组做图片拼接的实现(concatenate、vstack、hstack)
2019/11/08 Python
使用pandas实现连续数据的离散化处理方式(分箱操作)
2019/11/22 Python
详解移动端Html5页面中1px边框的几种解决方法
2018/07/24 HTML / CSS
H&M美国官网:欧洲最大的服饰零售商
2016/09/07 全球购物
英国工艺品购物网站:Minerva Crafts
2018/01/29 全球购物
英国网上超市:Ocado
2020/03/05 全球购物
如何打开WebSphere远程debug
2014/10/10 面试题
技术总监管理职责范本
2014/03/06 职场文书
保护环境的建议书
2014/03/12 职场文书
学校读书活动总结
2014/06/30 职场文书
职业生涯规划书怎么写?
2014/09/14 职场文书
刑事上诉状(无罪)
2015/05/23 职场文书
简述python四种分词工具,盘点哪个更好用?
2021/04/13 Python
Python如何导出导入所有依赖包详解
2021/06/08 Python