摘要 腾兴网为您分享:php特殊字符转义详解,掌上公交,一起发,夜读小说,学宝等软件知识,以及电烤箱食谱,快速,掌阅,仙剑奇侠传4音乐,盟军敢死队,无双大蛇3游侠,我吻过你的脸,搜客宝,小米系统一键锁屏,优家宝贝,人脸签到,网络编辑工具,外汇软件升级,gensee多媒体,单挑王等软件it资讯,欢迎关注腾兴网。在web安全中,需要对输出进行转义或对特殊字符进行编码,以保证原意不变。 例如,o'reilly 在传送给mysql 数据库前需要转义成o\'reilly。单引号前的反斜杠代表单引号是数据本身的一部分...

在web安全中,需要对输出进行转义或对特殊字符进行编码,以保证原意不变。

例如,o'reilly 在传送给mysql 数据库前需要转义成o\'reilly。单引号前的反斜杠代表单引号是数据本身的一部分,而不是并不是它的本义。

输出转义字符具体分为三步:

1,识别输出

2,输出转义

3,区分已转义与未转义数据

只对已过滤数据进行转义是很有必要的。尽管转义能防止很多常见安全漏洞,但它不能替代输入过滤。被污染数据必须首先过滤然后转义。

在对输出进行转义时,你必须先识别输出。通常,这要比识别输入简单得多,因为它依赖于你所进行的动作。

例如,识别到客户端的输出时,可以在代码中查找下列语句:

echo

print

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特殊字符转义详解相关推荐

  1. python正则表达式提取数字比较好_python正则表达式从字符串中提取数字的思路详解...

    python从字符串中提取数字 使用正则表达式,用法如下: ## 总结 ## ^ 匹配字符串的开始. ## $ 匹配字符串的结尾. ## \b 匹配一个单词的边界. ## \d 匹配任意数字. ## ...

  2. 字符串类习题、面试题详解(第二篇)

    第一篇链接:字符串类习题.面试题详解(第一篇) 6题:回文串(竞赛基础题) 输入一个字符串,求出其最长回文子串.子串的含义是:在原串中连续出现的字符串片段.回文的含义是:正着看和倒着看相同,如abba ...

  3. 字符串输入的2种常用方法详解

    字符串输入的2种常用方法详解 一.scanf函数 1.扫描集 2.逆向使用扫描集 二.gets函数 一.scanf函数 int main() {char arr[50] = { 0 };scanf(& ...

  4. 字符串拷贝函数:strcpy的详解及模拟实现

    字符串拷贝函数:strcpy的详解及模拟实现!!! 对于字符串拷贝函数,之前在学习字符串时候,就已经学习过,但那只是片面的学习了一下,并没有经过系统的分析!只是大概的学习了一下!在关键的地方有时候还不 ...

  5. python输入字符串并反序result_python字符串反转的四种方法详解

    python字符串反转的四种方法详解 这篇文章主要介绍了python字符串反转的四种详解,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 1.用red ...

  6. MySql截取字符串的几个常用函数详解

    MySql截取字符串的几个常用函数详解 MySQL 截取字符的几个常用函数:left(), right(), substring(), substring_index(),mid(), substr( ...

  7. python字符串strip的作用_Python字符串函数strip()原理及用法详解

    Python字符串函数strip()原理及用法详解 strip:用于移除字符串头尾指定的字符(默认为空格)或字符序列.注意:该方法只能删除开头或是结尾的字符,不能删除中间部分的字符. 语法:str.s ...

  8. python 子字符串 位置_python查找子字符串位置Python变量和数据类型详解

    Python变量和数据类型 Python中数据类型 Python之print语句 Python的注释 Python中什么是变量 Python中定义字符串 Python中raw字符串与多行字符串 Pyt ...

  9. python模板公式代码替换,Python - 字符串模板的安全替换(safe_substitute) 详解

    字符串模板的安全替换(safe_substitute) 详解 本文地址: http://blog.csdn.net/caroline_wendy/article/details/27057339 字符 ...

最新文章

  1. mysql中insert into select from的使用
  2. DeepMind刚向星际争霸 II 的玩家们下了战书!你的对手可能是只AI,而你毫不知情...
  3. Android MP3录音实现
  4. mysql ssd tps 上不去_转【案例分享】压测TPS上不去
  5. php 解包二进制,workerman的二进制怎么玩啊,怎么封包,怎么解包啊
  6. 6-2 第六天 规划项目功能分布
  7. ListIterator和Iterator的区别
  8. 大数据技术原理与应用:期末考点总结
  9. 6678EMIF总结
  10. QT资源库中图片的调用
  11. 偶极子阵列天线(带反射板)+单层天线罩
  12. scratch小游戏脚本大全
  13. archlinux + dwm系统美化
  14. MFC之学习扇形绘制与绘制阴阳鱼图
  15. 如何每天学习10小时,依然精力充沛?(超实用教程)
  16. COVID-19 抗原自检试剂盒行业研究及十四五规划分析报告
  17. 图Android 片缓存文件名,手机图片去了哪?教你理清照片存放路径
  18. 谷歌发布最强AI机器人AlphaGo Zero,融360拟融资3亿美元即将赴美上市 | 大数据周周看
  19. 第一章Mybatis基础操作学习
  20. 美国访问学者签证材料清单

热门文章

  1. 如何生成可导入数据库的亿级别数据
  2. MBR格式的硬盘安装ubuntu18,一定不要创建efi分区
  3. python中的 try
  4. 基于 Python 和 Selenium 实现 CSDN 一键三连自动化
  5. 拓嘉启远:拼多多商家如何做才能成功退店
  6. 三星Note系列刷入Kali Nethunter
  7. (转)iptables设置Linux全局代理
  8. WIN7实现安装node14.15.0版本
  9. 【机智】Android 微信6.2以上版本 转移聊天记录到ios,当前Wi-Fi环境复杂,无法传输 问题
  10. linux mmu的实现的讲解_MMU解读