html 实体 => htmlspecialchars
因为没有办法判断用户输入的数据是否安全, 可能含有和sql语句相冲突的字符,比如 ' " < >,
那就有一个办法, 把这些特殊字符处理一下,比如吧空格符号变成 ,这样sql语句就安全了,并且浏览器完全可以识别这些符号。
用户的输入有2中情况,
1 文章输入,插入数据库, htmlspecialchars -> 把某些可能和和sql语句相冲突的字符转义,但又不影响在网页上显示
2 url输入,显示在页面. -> 这个时候更要多测试不同情况, 真有http://localhost/local/?name=%27onmouseover=%27alert(1)
-------
htmlspecialchars('abc', ENT_QUOTES)
和之前想象的不同,body field在full html模式下,什么代码都能输入,因为sql语句不会和具体的value发生关系,只会和id/name之类的发生关系。
dpm(htmlspecialchars('q\'q"q\'>\<'));
//q'q"q'>\<
dpm(htmlspecialchars('q\'q"q\'>\<',ENT_QUOTES));
//q'q"q'>\<
从这里可以看出htmlspecialchars的功能还包括吧\'这样的字符转成‘,然后看是否ent_quotes,决定是否把‘转成实体。
html 实体 => htmlspecialchars的更多相关文章
- js把预定义的html字符串转换为 HTML 实体 htmlspecialchars 输出html实体内容包括标签,而不自动转义标签,只显示内容,类似php的htmlspecialchars
一.html字符串转换为 HTML 实体 htmlspecialchars function htmlspecialchars(str){ str = str ...
- php中常用的字符串格式化函数
ltrim():从字符串左删除空格或其他预定义字符串 rtrim():从字符串的末端开始删除空白字符串或其它预定义字符 trim():从字符串的两端删除空白字符和其他预定字符 str_pad():把字 ...
- jquery与php的HTML转义与反转义
1.jquery (1)Html转义 var tmp = '<a href="https://www.baidu.com/">连接</a>'; var tm ...
- php 加密 解密 方法
base64 Base64编码可用于在HTTP环境下传递较长的标识信息 base64_encode base64_decodeserialize 可以将 ...
- PHP字符串的处理(四)-HTML标签的字符串格式化
和html标签相关的字符串格式化 nl2br() //在字符串中每个新行"\n"之前插入html换行符"<br />" <?php echo ...
- php 编码和解码的函数
URL: urlencode(); //编码 urldecode(); //解码 URL与数组互转: parse_url () http_build_query() base64: base64_en ...
- 关于htmlspecialchars实体字符转码的问题
php对post过来的数据进行实体字符转码,我的页面编码是gb2312,刚开始是这样: $post = htmlspecialchars ( $post); 取到的$post值为空,但是有时候是好的( ...
- html 实体和htmlspecialchars()
HTML 中的预留字符必须被替换为字符实体. HTML 实体 在 HTML 中,某些字符是预留的. 在 HTML 中不能使用小于号(<)和大于号(>),这是因为浏览器会误认为它们是标签. ...
- xss绕过htmlspecialchars实体编码的姿势
倘若是在script.input标签当中,即可突破.Payload ' oninput=alert`1` // 当要在input中输入内容时触发事件' oninput=alert`1` ' ...
随机推荐
- Scrapy学习教程
http://scrapy-chs.readthedocs.io/zh_CN/0.24/intro/tutorial.html 在线学习教程: http://learnpythonthehardway ...
- MD5签名方法
/** * md5签名 * @param plainText 要签名的字符串 * @param enc 要编译的格式 gbk:utf-8 * @return */ public static Stri ...
- Android属性动画完全解析(上)
Android属性动画完全解析(上) 转载:http://blog.csdn.net/guolin_blog/article/details/43536355 在手机上去实现一些动画效果算是件比较炫酷 ...
- Android中@id与@+id区别
Android中的组件需要用一个int类型的值来表示,这个值也就是组件标签中的id属性值. id属性只能接受资源类型的值,也就是必须以@开头的值,例如,@id/abc.@+id/xyz等. 如果在@后 ...
- C#与C++(结构体内对象指定大小)
C++结构体:struct DATAAREA { // 报警协议数据区结构 char szAlarmNo[20]; // 报警编号(必填) char szUserNo[10]; // 用户编号(必填) ...
- SQL事务回滚样例
选课系统,当同意学号选课数量超过则回滚事务,符合条件则正常插入数据 --开始一个事务处理Begin Tran T1 --执行插入操作insert into Courselist values('201 ...
- 主框架搭建demo
- (void)viewDidLoad { [super viewDidLoad]; [self setUpAllChildViewController]; } /** ...
- An Example of On-Error Trigger in Oracle Forms
I wrote this trigger around 4 years ago to handle errors in an application based on Oracle Forms 6i. ...
- deep-learning-frameworks
From: http://venturebeat.com/2015/11/14/deep-learning-frameworks/ Here’s a rundown of some other not ...
- 对Spring <context:annotation-config/>的理解
在基于主机方式配置Spring的配置文件中,你可能会见到<context:annotation-config/>这样一条配置,他的作用是向 Spring 容器注册 AutowiredAnn ...