网页怎样防御XSS攻击呢?下面整理了几种常见且实用的防范方法。
首先,需要让过滤器对特殊字符进行转义和过滤处理,例如:
function filter(xss) { var whiteList = ['h1', 'h2']; // 白名单 var translateMap = { '<': '<', '>': '>' }; return xss.replace(/?(.*?)>/g, function(str, $1, index, origin) { console.log($1); if (whiteList.indexOf($1) >= 0) { return str; } return str.replace(/[<>]/g, function(str) { return translateMap[str]; }); });}var search = location.search;var query = search.slice(1);var params = query.split('&').map(function(str) { var list = str.split('='); var key = list[0]; var val = list[1]; return { key: decodeURIComponent(key), val: decodeURIComponent(val) };});console.log(params);var xss;params.some(function(item) { xss = item.val; return true;});console.log(xss);console.log(filter(xss));document.open();document.write(xss);document.write(filter(xss));document.close(); //eg https://127.0.0.1:8080/?xss=1233
