php 转译特殊的字符串,php转义字符_php特殊字符转义详解
摘要 腾兴网为您分享:php特殊字符转义详解,掌上公交,一起发,夜读小说,学宝等软件知识,以及电烤箱食谱,快速,掌阅,仙剑奇侠传4音乐,盟军敢死队,无双大蛇3游侠,我吻过你的脸,搜客宝,小米系统一键锁屏,优家宝贝,人脸签到,网络编辑工具,外汇软件升级,gensee多媒体,单挑王等软件it资讯,欢迎关注腾兴网。在web安全中,需要对输出进行转义或对特殊字符进行编码,以保证原意不变。 例如,o'reilly 在传送给mysql 数据库前需要转义成o\'reilly。单引号前的反斜杠代表单引号是数据本身的一部分...
在web安全中,需要对输出进行转义或对特殊字符进行编码,以保证原意不变。
例如,o'reilly 在传送给mysql 数据库前需要转义成o\'reilly。单引号前的反斜杠代表单引号是数据本身的一部分,而不是并不是它的本义。
输出转义字符具体分为三步:
1,识别输出
2,输出转义
3,区分已转义与未转义数据
只对已过滤数据进行转义是很有必要的。尽管转义能防止很多常见安全漏洞,但它不能替代输入过滤。被污染数据必须首先过滤然后转义。
在对输出进行转义时,你必须先识别输出。通常,这要比识别输入简单得多,因为它依赖于你所进行的动作。
例如,识别到客户端的输出时,可以在代码中查找下列语句:
echo
printf
作为一项应用的开发者,你必须知道每一个向外部系统输出的地方。它们构成了输出。象过滤一样,转义过程在依情形的不同而不同。过滤对于不同类型的数据处理方法也是不同的,转义也是根据你传输信息到不同的系统而采用不同的方法。
对于一些常见的输出目标(包括客户端、数据库和url)的转义,php 中有内置函数可用。
如果你要写一个自己算法,做到万无一失很重要。需要找到在外系统中特殊字符的可靠和完整的列表,以及它们的表示方式,这样数据是被保留下来而不是转译了。
最常见的输出目标是客户机,使用htmlentities( )在数据发出前进行转义是最好的方法。与其它字符串函数一样,它输入是一个字符串,对其进行加工后进行输出。但是使用htmlentities( )函数的最佳方式是指定它的两个可选参数:引号的转义方式(第二参数)及字符集(第三参数)。
引号的转义方式应该指定为ent_quotes,它的目的是同时转义单引号和双引号,这样做是最彻底的,字符集参数必须与该页面所使用的字符集相必配。
为了区分数据是否已转义,我还是建议定义一个命名机制。
对于输出到客户机的转义数据,使用$html 数组进行存储,该数据首先初始化成一个空数组,对所有已过滤和已转义数据进行保存。
例子:
复制代码 代码示例:
$html = array( );
$html['username'] = htmlentities($clean['username'], ent_quotes, 'utf-8');
echo "
welcome back, {$html['username']}.
";
?>
小提示
htmlspecialchars( )函数与htmlentities( )函数基本相同,它们的参数定义完全相同,只不过是htmlentities( )的转义更为彻底。通过$html['username']把username 输出到客户端,你就可以确保其中的特殊字符不会被浏览器所错误解释。如果username 只包含字母和数字的话,实际上转义是没有必要的,但是这体现了深度防范的原则。转义任何的输出是一个非常好的习惯,它可以戏剧性地提高你的软件的安全性。
另外一个常见的输出目标是数据库。如果可能的话,需要对sql 语句中的数据使用php内建函数进行转义。
对于mysql数据库用户,最好的转义函数是mysql_real_escape_string( )。
如果使用的数据库没有php 内建转义函数可用的话,addslashes( )是最后的选择。
例子,对于mysql 数据库的正确的转义技巧:
复制代码 代码示例:
$mysql = array( );
$mysql['username'] = mysql_real_escape_string($clean['username']);
$sql = "select *
from profile
where username = '{$mysql['username']}'";
$result = mysql_query($sql);
?>
php过滤参数特殊字符防注入
php 过滤非法与特殊字符串的方法
php实例:特殊字符处理函数的例子
替换超长文本中的特殊字符的php代码
相关推荐
php 转译特殊的字符串,php转义字符_php特殊字符转义详解相关推荐
- python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...
python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...
- 字符串类习题、面试题详解(第二篇)
第一篇链接:字符串类习题.面试题详解(第一篇) 6题:回文串(竞赛基础题) 输入一个字符串,求出其最长回文子串.子串的含义是:在原串中连续出现的字符串片段.回文的含义是:正着看和倒着看相同,如abba ...
- 字符串输入的2种常用方法详解
字符串输入的2种常用方法详解 一.scanf函数 1.扫描集 2.逆向使用扫描集 二.gets函数 一.scanf函数 int main() {char arr[50] = { 0 };scanf(& ...
- 字符串拷贝函数:strcpy的详解及模拟实现
字符串拷贝函数:strcpy的详解及模拟实现!!! 对于字符串拷贝函数,之前在学习字符串时候,就已经学习过,但那只是片面的学习了一下,并没有经过系统的分析!只是大概的学习了一下!在关键的地方有时候还不 ...
- python输入字符串并反序result_python字符串反转的四种方法详解
python字符串反转的四种方法详解 这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用red ...
- MySql截取字符串的几个常用函数详解
MySql截取字符串的几个常用函数详解 MySQL 截取字符的几个常用函数:left(), right(), substring(), substring_index(),mid(), substr( ...
- python字符串strip的作用_Python字符串函数strip()原理及用法详解
Python字符串函数strip()原理及用法详解 strip:用于移除字符串头尾指定的字符(默认为空格)或字符序列.注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符. 语法:str.s ...
- python 子字符串 位置_python查找子字符串位置Python变量和数据类型详解
Python变量和数据类型 Python中数据类型 Python之print语句 Python的注释 Python中什么是变量 Python中定义字符串 Python中raw字符串与多行字符串 Pyt ...
- python模板公式代码替换,Python - 字符串模板的安全替换(safe_substitute) 详解
字符串模板的安全替换(safe_substitute) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27057339 字符 ...
最新文章
- mysql中insert into select from的使用
- DeepMind刚向星际争霸 II 的玩家们下了战书!你的对手可能是只AI,而你毫不知情...
- Android MP3录音实现
- mysql ssd tps 上不去_转【案例分享】压测TPS上不去
- php 解包二进制,workerman的二进制怎么玩啊,怎么封包,怎么解包啊
- 6-2 第六天 规划项目功能分布
- ListIterator和Iterator的区别
- 大数据技术原理与应用:期末考点总结
- 6678EMIF总结
- QT资源库中图片的调用
- 偶极子阵列天线(带反射板)+单层天线罩
- scratch小游戏脚本大全
- archlinux + dwm系统美化
- MFC之学习扇形绘制与绘制阴阳鱼图
- 如何每天学习10小时,依然精力充沛?(超实用教程)
- COVID-19 抗原自检试剂盒行业研究及十四五规划分析报告
- 图Android 片缓存文件名,手机图片去了哪?教你理清照片存放路径
- 谷歌发布最强AI机器人AlphaGo Zero,融360拟融资3亿美元即将赴美上市 | 大数据周周看
- 第一章Mybatis基础操作学习
- 美国访问学者签证材料清单