我使用转义HTML的下划线js方法:
var __entityMap = {
"&": "&",
"<": "<",
">": ">",
'"': '"',
"'": ''',
"/": '/'
};
String.prototype.escapeHTML = function() {
return String(this).replace(/[&<>"'\/]/g, function(s) {
return __entityMap[s];
});
}
问题是这也逃脱了#34; /&#34;这使我的自动链接器不再起作用。
我正在使用:
https://github.com/bryanwoods/autolink-js/blob/master/autolink.js
我该怎么做才能解决这个问题?
答案 0 :(得分:0)
正如评论中所建议的那样 - 没有理由逃避单个正斜杠 - 你应该从你正在逃避的角色列表中删除它不会遇到任何问题。你只需要转义会破坏你的代码的字符,如果保持不变,正斜杠不太可能导致任何问题。
OWASP does recommend转发正斜杠,这可能就是为什么你在某些时候建议这样做 - 但是建议是从不受信任的来源加载内容 。如果您正在加载自己编写的模板,则不必担心自己会对自己运行跨站点脚本攻击。