前言
前端页面文本输入过程中输入<script></script>标签
一般情况下是没有什么问题的,但是也有几种情况会出现问题
1.输入框的文本被取值然后以拼装或者innerHTML的形式插入到界面
这种情况script标签里的代码会执行,造成的后果未知(不过F12之后console面板本来就可以执行js,貌似防不住)
如果script里面是js代码,那么界面上就不会显示(面对真的要填写这个文本内容的,不做处理可能根本就不显示)
2.数据传到后端,在返回前端如果返回的方式不对,容易造成页面出现代码,或者干脆导致页面报错打不开
这种情况我只在页面使用framemarker语法时看见过
如果不注意根据情况使用?html ?js_string去转换
html代码部分不转换会使界面出现代码,js部分不转换会使页面报错严重的额能白屏
特定的地方使用对<script></script>进行处理可以避免这些问题
var txt="<script>alert('1')</script>";
txt=txt.replace(/<script|<\/script/ig,function(c){
return "<"+c.substring(1);
});
//返回结果
"<script>alert('1')</script>"
将script标签中的<转换成<这也是大多数框架的处理方式
部分老式的jquery版的ui框架比较容易出现这个问题,该方法在easyui上测试表现正常,其他更多的地方待测
网友评论