HTML 对尖括号、&、换行符和引号进行编码是否足以防止 XSS?

Is HTML encoding angle brackets, &, newline, and quotes enough to prevent XSS?

我正在创建一个网站,并且我有一个部分,用户可以在其中通过表单提供输入。使用以下方法对输入进行清理:

str.replace(/[\x26\x0A<>'"]/g,function(r){return"&#"+r.charCodeAt(0)+";"})

之后,数据放在<p>标签之间。所以像这样:

<p id="foo">Random message</p>

我的替换函数是否足以防止 XSS 攻击?

这基本上是 Can I escape html special chars in javascript? 的重复。是的,您的代码可能是安全的,它的作用与那里接受的答案相同。