一、什么是XSS攻击(粘贴百度的)
XSS 攻击 : XSS攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序;
二、解决方案
-
优雅的解决:将用户输入的进行编码,将< 、"、&、> 等特殊字符进行转义,让浏览器当成字符串显示。
// artTemplete 中进行XSS 防御转义方式。 var escapeMap = { "<": "<", ">": ">", '"': """, "'": "'", "&": "&" }; var escapeFn = function (s) { return escapeMap[s]; }; var escapeHTML = function (content) { return toString(content) .replace(/&(?![\w#]+;)|[<>"']/g, escapeFn); }; -
暴力的解决: 通过innerText/textContent 的只能设置文本的特殊性。
function(value){ if(typeof value !== 'string'){ return value; } var str = value || '', temp = document.createElement ("div"), obj; (temp.textContent != undefined ) ? (temp.textContent = str) : (temp.innerText = str); obj = temp.innerHTML; temp = null; return obj; } -
第三方插件 github.com/leizongmin/…