-
php sql防注入以及 html 过滤安全函数
方法一过滤html自定义函数,代码如下:
- function ihtmlspecialchars($string) {
- if(is_array($string)) {
- foreach($string as $key => $val) {
- $string[$key] = ihtmlspecialchars($val);
- } //开源代码phpfensi.com
- } else {
- $string = preg_replace('/&((#(d{3,5}|x[a-fa-f0-9]{4})|[a-za-z][a-z0-9]{2,5});)/', '&\1',
- str_replace(array('&', '"', '<', '>'), array('&', '"', '<', '>'), $string));
- }
- return $string;
方法二,代码如下:
- // $rptype = 0 表示仅替换 html标记
- // $rptype = 1 表示替换 html标记同时去除连续空白字符
- // $rptype = 2 表示替换 html标记同时去除所有空白字符
- // $rptype = -1 表示仅替换 html危险的标记
- function htmlreplace($str,$rptype=0)
- {
- $str = stripslashes($str);
- if($rptype==0)
- {
- $str = htmlspecialchars($str);
- }
- else if($rptype==1)
- {
- $str = htmlspecialchars($str);
- $str = str_replace(" ",' ',$str);
- $str = ereg_replace("[rnt ]{1,}",' ',$str);
- }
- else if($rptype==2)
- {
- $str = htmlspecialchars($str);
- $str = str_replace(" ",'',$str);
- $str = ereg_replace("[rnt ]",'',$str);
- }
- else
- {
- $str = ereg_replace("[rnt ]{1,}",' ',$str);
- $str = eregi_replace('script','script',$str);
- $str = eregi_replace("<[/]{0,1}(link|meta|ifr|fra)[^>]*>",'',$str);
- }
- return addslashes($str);
- }
其它方法,php过滤不安全字符函数,代码如下:
- function uh($str)
- {
- $farr = array(
- "/s+/",//过滤多余的空白
- "/<(/?)(script|i?frame|style|html|body|title|link|meta|?|%)([^>]*?)>/isu",//过滤 <script 等可能引入恶意内容或恶意改变显示布局的代码,如果不需要插入flash等,还可以加入<object的过滤
- "/(<[^>]*)on[a-za-z]+s*=([^>]*>)/isu",//过滤网页特效的on事件
- );
- $tarr = array(
- " ",
- "<\1\2\3>", //如果要直接清除不安全的标签,这里可以留空
- "\1\2",
- );
- $str = preg_replace($farr,$tarr,$str);
- return $str;
出处:http://www.phpfensi.com/php/20140825/4746.html
栏目列表
最新更新
nodejs爬虫
Python正则表达式完全指南
爬取豆瓣Top250图书数据
shp 地图文件批量添加字段
爬虫小试牛刀(爬取学校通知公告)
【python基础】函数-初识函数
【python基础】函数-返回值
HTTP请求:requests模块基础使用必知必会
Python初学者友好丨详解参数传递类型
如何有效管理爬虫流量?
SQL SERVER中递归
2个场景实例讲解GaussDB(DWS)基表统计信息估
常用的 SQL Server 关键字及其含义
动手分析SQL Server中的事务中使用的锁
openGauss内核分析:SQL by pass & 经典执行
一招教你如何高效批量导入与更新数据
天天写SQL,这些神奇的特性你知道吗?
openGauss内核分析:执行计划生成
[IM002]Navicat ODBC驱动器管理器 未发现数据
初入Sql Server 之 存储过程的简单使用
这是目前我见过最好的跨域解决方案!
减少回流与重绘
减少回流与重绘
如何使用KrpanoToolJS在浏览器切图
performance.now() 与 Date.now() 对比
一款纯 JS 实现的轻量化图片编辑器
关于开发 VS Code 插件遇到的 workbench.scm.
前端设计模式——观察者模式
前端设计模式——中介者模式
创建型-原型模式