web开发中如何保存textarea中的格式 又能防御XSS攻击
来源:互联网 发布:铜陵网络台 编辑:程序博客网 时间:2024/05/16 01:20
最近在开发一个web项目中的内部邮箱系统时被一个问题卡住了,我希望能通过邮箱向用户推送各类信息并且用户能原样式浏览。但是又希望对输入进行过滤防止恶意的XSS攻击。
一般而言,我们都会在服务器端使用htmlspecialchars(nl2br($str))对内容进行过滤防止XSS攻击,但是使用了这个方式,用户就没法原样式浏览信息。
如果不进行过滤,第一存在极大的安全风险,第二一些换行引号等特殊字符会导致json数据传输出错。
解决方案:
第一步:在js文件中使用如下代码
var str= jQuery("#emailcontent").val();//获取指定id的textarea值
var strs= new Array(); //定义一数组
var content = "";
strs=str.split("\n"); //字符分割
for (var i=0;i<strs.length ;i++ )
{
content += "<p style='text-indent: 2em;'>"+strs[i]+"</p>"; //分割后的字符输出, style='text-indent: 2em;首行缩进
}
上面的js代码的含义是,将用户输入的数据取出来,并且对换行进行分割,对每一行使用<p></p>包裹起来,如果使用POST传输的话还需要进行如下操作
jQuery("#emailcontent").val(content);//将处理过的数据放到textarea中
第二步:服务器端处理 php
$body = strip_tags($_POST["emailcontent"],"<p></p>");//去除掉数据中的全部html标签,仅保留<p></p>标签
$body = str_replace("\"",""",$body);//将全部的双引号转换成编码
通过这两步处理就能将原格式数据传输给用户
- web开发中如何保存textarea中的格式 又能防御XSS攻击
- web中XSS攻击及防御
- [Web开发] IE8中如何防御网站被Clickjacking攻击
- [web]xss攻击及如何防御
- web渗透—xss攻击防御
- 【荐】Angular如何防御XSS攻击
- WEB网站防御XSS攻击思路和XSS实践
- XSS攻击防御
- XSS攻击与防御
- XSS攻击及防御
- XSS攻击及防御
- XSS攻击以及防御
- XSS攻击及防御
- XSS攻击及防御
- XSS攻击及防御
- XSS攻击及防御
- XSS攻击及防御
- XSS攻击及防御
- leetcode 4.median of two sorted arrays
- STL迭代器
- Linux命令的操作
- [BZOJ2839]集合计数(容斥原理+组合数学)
- python实现switch功能
- web开发中如何保存textarea中的格式 又能防御XSS攻击
- HTML学习(一)
- 二叉树和树的区别:二叉树不是树
- 看海航如何布局全球产业链
- C语言插入排序
- NullPointerException获奖感言
- Go语言包的注意事项与目录管理
- 解决transformResourcesWithMergeJavaResForDebug问题
- 中国企业国际化的“势”与“能”