php安全之字符转换
来源:互联网 发布:n卡驱动优化守望先锋 编辑:程序博客网 时间:2024/06/10 01:27
今天在看<<Pro Php Security>>这本书的时候,有一部分是专门讲用户输入验证与净化(sanitize)这一内容的。
当用户输入的时候,有好几类字符得转换,最基本的是addslashes这样的转换
还有几点要考虑
(1)当用户输入要显示的内容时,可能有html或者javascript代码,对这样的代码转换比较简单
$string = str_replace(array("%3C",'<'), '<', $string);
$string = str_replace(array("%3E",'>'), '>', $string);
最让我好奇的是%3C %3E是什么东西?
%3C齐实就是'<'的url编码值.
%3E齐实就是'>'的url编码值.
具体的编码对照参见 编码详细说明
Points
(Hex)
Points
(Dec)
'Less Than' symbol ("<")
'Greater Than' symbol (">")22
3C
3E34
60
62These characters are often used to delimit URLs in plain text.'Pound' character ("#")2335This is used in URLs to indicate where a fragment identifier (bookmarks/anchors in HTML) begins.Percent character ("%")2537This is used to URL encode/escape other characters, so it should itself also be encoded.Misc. characters:
Left Curly Brace ("{")
Right Curly Brace ("}")
Vertical Bar/Pipe ("|")
Backslash ("/")
Caret ("^")
Tilde ("~")
Left Square Bracket ("[")
Right Square Bracket ("]")
Grave Accent ("`")
7B
7D
7C
5C
5E
7E
5B
5D
60
123
125
124
92
94
126
91
93
96Some systems can possibly modify these characters.
(2)在xml文件中不允许出现的非法字符
这类字符最好进行替换
如
Char
::=
#x9 | #xA | #xD | [#x20-#xD7FF] | [#xE000-#xFFFD] | [#x10000-#x10FFFF]
/*
any Unicode character, excluding the surrogate blocks, FFFE, and FFFF. */
这此字符是允许出现在xml文档中的,不在此之内的字符是不允许出现在xml文档之中的
具体xml字符规范
$string = preg_replace(array('/[//x00-//x08//x0B//x0C//x0E-//x1F]/','/&(?!(#[0-9]+|[a-z]+);)/is'), array('', '&'), $string);
用这种方式可以把这些字符转换或者替代
(3)有些字符串是不能出现单引号和双引号,可以把这些字符转义
$string = str_replace(array('"',"'","/t",' '), array('"',''',' ',' '), $string);
把如上这些字符进行转换后,输出的时候就不会有错误,并且相对安全了很多
- php安全之字符转换
- PHP中文字符转换
- Php特殊字符转换
- PHP 字符转换
- php 字符编码转换
- 字符的转换(php)
- php字符编码转换
- php 字符安全转码为UTF-8 的函数,转换前做判断
- PHP安全之register_globals
- PHP安全之错误报告
- 安全之PHP.ini
- PHP自动转换转义字符
- php字符编码转换问题
- PHP 转换字符的编码
- php英文字符大小写转换
- PHP转换字符及截取字符函数
- PHP安全之Web攻击
- php字符串处理之全角半角转换(正则匹配全角字符思路)
- 今早2架直升机在我头顶盘旋!!!
- 明天
- 美媒评利润率最高10家科技公司,中国最高不是腾讯,不是百度,不是阿里巴巴
- who have the code of a simple implementation of TCP congestion control?
- Linux编辑器--vim的tag29.2
- php安全之字符转换
- 如何查看何人登录,并踢掉他
- Oracle Database 11gR1 和 10gR2 ASM Best Practices 说明文档
- MTK手机驱动培训资料
- MTK系统错误类型
- MonoDroid学习笔记(六)—— 手机的页面转换及页面间的数据传递
- ubuntu 10.10 desktop 安装opernerp
- 20非常有用的Java程序片段
- vb.net list 的 random_shuffle 乱序算法