如何在使用所见即所得编辑器之前删除不安全的内容
How to remove unsafe contents of WYSIWYG editors before use it?
如何在使用前删除所见即所得编辑器的不安全内容,如script标签或iframe标记和其他标签的事件?
<script>
// Dangerous contents
</script>
<iframe>
// bad web pages
</iframe>
<span onclick="javascript://do bad work here !!!">click me</span>
您不应该试图自己编写这样的保护。
特别是,您不应该将保护放在客户端(javascript),而是使用服务器端过滤,如http://htmlpurifier.org/
我们可以使用像这样的javascript函数来中和
function neutralizeText(text) {
var i,mtch=text.match(/(<[a-z]+'s+[^>]*'s+|<[a-z]+'s+)on[a-z]+('s)*=('b|'s|[^>])*>/gi);
if(mtch!=null) {
for(i=0;i<mtch.length;i++) {
text=text.replace(mtch[i],mtch[i].replace(/'s+on[a-z]+('s)*=/gi,' data-neutralized='));
}
}
text=text.replace(/<script('b|'s)[^>]*>(([ 't'r'n]|.)*?)<'/script>/ig,'');
text=text.replace(/<iframe('b|'s)[^>]*>(([ 't'r'n]|.)*?)<'/iframe>/ig,'');
text=text.replace(/<object('b|'s)[^>]*>(([ 't'r'n]|.)*?)<'/object>/ig,'');
text=text.replace(/<'!'-'-(.*?)'-'->/g,'');
text=text.replace(/<'!'-'-/g,'');
return text;
}
但这还不够,您必须在服务器端进行检查。因为javascript可以在浏览器中禁用。
相关文章:
- 删除不起作用的父元素和所有子元素
- CORS保持在SecurityError上:操作不安全
- 删除不带jQuery的覆盖css
- createObjectURL blob url在Firefox中不安全
- 地理定位API从Chrome 50中的不安全来源中删除
- 为什么流星会被认为是不安全的
- SecurityError:操作在canvas.toDataURL中不安全
- Mootools:拒绝设置不安全的标头“;连接”;
- Chrome for bookmarlet 中的“不安全内容”
- 为什么内联 JS 块不安全
- JavaScript 确认删除不起作用
- 如何在jQuery中从段落中删除不需要的元素
- jQuery:Javascript抛出错误“;操作不安全”;设置值时
- AngularJS-ngBindHtml和'不安全'html
- 删除不起作用的li元素
- HTML5历史API-操作不安全
- 使用自动套录插入,并删除不安全的表单
- Sharepoint 2010-停止不安全的代码删除
- 如何在使用所见即所得编辑器之前删除不安全的内容
- requestFullscreen()在不安全的源代码上已被弃用,将来将删除对它的支持