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
ThinkPHP写第一个模块应用
Feb 20 PHP
PHP对MongoDB[NoSQL]数据库的操作
Mar 01 PHP
php批量更改数据库表前缀实现方法
Oct 26 PHP
PHP循环输出指定目录下的所有文件和文件夹路径例子(简单实用)
May 10 PHP
PHP定时任务延缓执行的实现
Oct 08 PHP
php使用function_exists判断函数可用的方法
Nov 19 PHP
腾讯微博提示missing parameter errorcode 102 错误的解决方法
Dec 22 PHP
PHP使用stream_context_create()模拟POST/GET请求的方法
Apr 02 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
Jul 25 PHP
php生成毫秒时间戳的实例讲解
Sep 22 PHP
php实现的mongoDB单例模式操作类
Jan 20 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求最大子序列和的算法实现
2011/06/24 PHP
php对二维数组按指定键值key排序示例代码
2013/11/26 PHP
递归删除一个节点以及该节点下的所有节点示例
2014/03/19 PHP
你需要知道的JavsScript可以做什么?
2007/06/29 Javascript
获取客户端网卡MAC地址和IP地址实现JS代码
2013/03/17 Javascript
Javascript字符串浏览器兼容问题分析
2014/12/01 Javascript
JS+DIV+CSS实现的经典标签切换效果代码
2015/09/14 Javascript
第一篇初识bootstrap
2016/06/21 Javascript
JS函数多个参数默认值指定方法分析
2016/11/28 Javascript
利用js来实现缩略语列表、文献来源链接和快捷键列表
2016/12/16 Javascript
利用Node.js+Koa框架实现前后端交互的方法
2017/02/27 Javascript
Ionic2开发环境搭建教程
2020/08/20 Javascript
深入浅析Vue全局组件与局部组件的区别
2018/06/15 Javascript
vue-cli 脚手架基于Nightwatch的端到端测试环境的过程
2018/09/30 Javascript
JS实现使用POST方式发送请求
2019/08/30 Javascript
基于JS实现快速读取TXT文件
2020/08/25 Javascript
[01:22:10]Ti4 循环赛第二日 DK vs Empire
2014/07/11 DOTA
对pandas进行数据预处理的实例讲解
2018/04/20 Python
Python代码缩进和测试模块示例详解
2018/05/07 Python
【python】matplotlib动态显示详解
2019/04/11 Python
python 修改本地网络配置的方法
2019/08/14 Python
使用turtle绘制五角星、分形树
2019/10/06 Python
python tkinter canvas使用实例
2019/11/04 Python
python小白学习包管理器pip安装
2020/06/09 Python
Django中Q查询及Q()对象 F查询及F()对象用法
2020/07/09 Python
浅谈html5 响应式布局
2014/12/24 HTML / CSS
函授本科自我鉴定
2013/11/03 职场文书
2014年学校德育工作总结
2014/12/05 职场文书
2014年行政执法工作总结
2014/12/11 职场文书
《狮子和鹿》教学反思
2016/02/16 职场文书
2019年健身俱乐部的创业计划书
2019/08/26 职场文书
导游词之千岛湖
2019/09/23 职场文书
React实现动效弹窗组件
2021/06/21 Javascript
Python基于百度AI实现抓取表情包
2021/06/27 Python
Java实现字符串转为驼峰格式的方法详解
2022/07/07 Java/Android
HTML5中的DOCUMENT.VISIBILITYSTATE属性详解
2023/05/07 HTML / CSS