javascript:转义html,并将纯文本链接转换为<a> tag</a>

时间:2014-05-13 16:45:55

标签: javascript jquery html escaping

我使用转义HTML的下划线js方法:

var __entityMap = {
"&": "&amp;",
"<": "&lt;",
">": "&gt;",
'"': '&quot;',
"'": '&#39;',
"/": '&#x2F;'
};

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

我该怎么做才能解决这个问题?

1 个答案:

答案 0 :(得分:0)

正如评论中所建议的那样 - 没有理由逃避单个正斜杠 - 你应该从你正在逃避的角色列表中删除它不会遇到任何问题。你只需要转义会破坏你的代码的字符,如果保持不变,正斜杠不太可能导致任何问题。

OWASP does recommend转发正斜杠,这可能就是为什么你在某些时候建议这样做 - 但是建议是从不受信任的来源加载内容 。如果您正在加载自己编写的模板,则不必担心自己会对自己运行跨站点脚本攻击。