web安全防范之XSS漏洞攻击
原文出处:http://netsecurity.51cto.com/art/201301/378948.htm
这篇博客也不错:http://blog.csdn.net/ghsau/article/details/17027893
网站通常会遇到的攻击;攻击方法也很多;
原理:向网页内注入可执行代码,从而达到入侵目的。
危害:破坏页面结构,导致页面显示问题;
更严重的会盗取当前用户的cookie,导致你的账号被盗等;
function escape(html) { var codeSpan = /(^|[^\\])(`+)([^\r]*?[^`])\2(?!`)/gm; var codeBlock = /(?:\n\n|^)((?:(?:[ ]{4}|\t).*\n+)+)(\n*[ ]{0,3}[^ \t\n]|(?=~0))/g; var spans = []; var blocks = []; var text = String(html).replace(/\r\n/g, '\n') .replace('/\r/g', '\n'); text = '\n\n' + text + '\n\n'; texttext = text.replace(codeSpan, function(code) { spans.push(code); return '`span`'; }); text += '~0'; return text.replace(codeBlock, function (code) { blocks.push(code); return '\n\tblock'; }) .replace(/&(?!\w+;)/g, '&') .replace(/</g, '<') .replace(/>/g, '>') .replace(/"/g, '"') .replace(/`span`/g, function() { return spans.shift(); }) .replace(/\n\tblock/g, function() { return blocks.shift(); }) .replace(/~0$/,'') .replace(/^\n\n/, '') .replace(/\n\n$/, ''); };
使用Apache的commons-lang.jar StringEscapeUtils.escapeHtml(str);// 汉字会转换成对应的ASCII码,空格不转换