百度编辑器向数据库提交数据后字符转义的问题
2014-03-30 14:24
489 查看
前两天用ThinkPHP做网站开发,后台调用百度编辑器提交数据。在做前端的时候调取数据库显示文章内容,在页面上却显示出如<p></p> <strong></strong>之类的字符。于是查看数据库,发现在数据库中存储的内容为<p></p> <strong></strong>
,百度一下,发现<>$amp;分别是< > &的转义字符。
为什么要将这些特殊字符转义呢?一般来讲,用户输入的东西是不可信任的,如用户注册,用户评论等。所以不光要做好防止sql的注入,还要防止JS的注入,html的注入。举几个简单例子。
一。javascript注入的危害。
我在一个网站留言了,并且这个网站没有JS进行过滤,我在留言中加入以下内容
<script type="text/javascript">
for(i=0;i>=0;i++)
alert("我弹");
</script>
如果不对JS标签进行转义,那么将在浏览器上无限循环弹出警告框。转义到数据后,在前台调用的时候进行反转义,就可以将原始内容完完全全显示出来而不会造成危害。
二。html注入的危害
对用户输入的<p></p>等标签不进行转义的话,再向页面输出时会破坏页面的布局。
关于表单提交的特殊字符的处理方法,常用的PHP 函数有:
1. htmlspecialchars() ,作用:将与,单双引号,大小于号转成html格式
如:&转成& "转成&qout; '转成' <转成< >转成>
2. htmlspecialchars_decode() 作用:对应将上述字符进行反转义
3. addslashes() 作用:将单双引号,反斜线和null加上反斜线转义
如:'转成\' \转成\\ "转成\"
4. stripslashes() 作用: 对应的去掉上述特殊字符添加的反斜线,一个反斜线的话直接去掉,若是连续两个反斜线,则去掉一个,留下一个。
所以针对本文开始时提出的问题,只需在前台调用数据库向页面显示的时候用htmlspecialchars_decode()将数据进行反转义即可正确显示。
,百度一下,发现<>$amp;分别是< > &的转义字符。
为什么要将这些特殊字符转义呢?一般来讲,用户输入的东西是不可信任的,如用户注册,用户评论等。所以不光要做好防止sql的注入,还要防止JS的注入,html的注入。举几个简单例子。
一。javascript注入的危害。
我在一个网站留言了,并且这个网站没有JS进行过滤,我在留言中加入以下内容
<script type="text/javascript">
for(i=0;i>=0;i++)
alert("我弹");
</script>
如果不对JS标签进行转义,那么将在浏览器上无限循环弹出警告框。转义到数据后,在前台调用的时候进行反转义,就可以将原始内容完完全全显示出来而不会造成危害。
二。html注入的危害
对用户输入的<p></p>等标签不进行转义的话,再向页面输出时会破坏页面的布局。
关于表单提交的特殊字符的处理方法,常用的PHP 函数有:
1. htmlspecialchars() ,作用:将与,单双引号,大小于号转成html格式
如:&转成& "转成&qout; '转成' <转成< >转成>
2. htmlspecialchars_decode() 作用:对应将上述字符进行反转义
3. addslashes() 作用:将单双引号,反斜线和null加上反斜线转义
如:'转成\' \转成\\ "转成\"
4. stripslashes() 作用: 对应的去掉上述特殊字符添加的反斜线,一个反斜线的话直接去掉,若是连续两个反斜线,则去掉一个,留下一个。
所以针对本文开始时提出的问题,只需在前台调用数据库向页面显示的时候用htmlspecialchars_decode()将数据进行反转义即可正确显示。
相关文章推荐
- Struts2表单提交的中文字符数据用hibernate存储在数据库中是乱码的问题。
- 百度编辑器提交数据时如何防止html标签被转义
- 关于一个编辑器插入数据库需要转义的问题
- 解决ssm项目表单数据提交到数据库乱码问题
- thinkphp使用Ueditor编辑器写入数据库单双引号转义问题
- 页面提交数据到数据库乱码问题
- 在Oracle中IMP导入数据时,如何解决目标数据库字符不一致问题
- SSM框架Jsp页面POST提交的中文数据保存到数据库变成乱码问题的分析
- 页面提交数据到数据库乱码问题
- 解决前台jsp页面提交中文数据以后,数据库中乱码问题??
- 数据库导入字符串路径转义字符问题
- 插入数据库数据时出现ORA-00911: 无效字符问题,
- 用百度编辑器发布文章代码/英文字符无法自动换行问题解决方法
- 前端提交的中文数据与后端数据库无法正确匹配的问题
- ueditor-angular(百度编辑器angular版)中,关于插入图片后不操作,图片无法正常提交的问题;
- SoapUI进行REST请求,POST方法提交到数据库的数据乱码问题
- 图片按钮,使用get方法提交数据时遇到的严重问题!
- C语言(9)--获得缓存区中的输入数据、趣味转义字符
- android关于base64转化二进制字符图片的问题,提交的数据报非法字符的问题的解决
- 今天碰到了一个问题,数据传到数据库为空,结果没有注意,调试了好久