C# 我们是否需要使用HttpUtility.HtmlEncode作为资源来防止XSS?

C# 我们是否需要使用HttpUtility.HtmlEncode作为资源来防止XSS?,c#,security,encoding,xss,C#,Security,Encoding,Xss,我们需要在我们的网站上使用HttpUtility.HtmlEncode。我们是否需要将其用于资源?是否存在任何潜在威胁 <%=HttpUtility.HtmlEncode(Resources.MyResourceString)%> 如果您的资源来自已知的安全源(我怀疑他们是这样),那么您不需要这样做,不。如果您的资源来自已知的安全源(我怀疑他们是这样做的),那么您不需要这样做,不。不是为了防止跨站点脚本-也就是说,除非您的用户可以访问应用程序的资源,并且可以插入恶意内容 不阻止跨

我们需要在我们的网站上使用HttpUtility.HtmlEncode。我们是否需要将其用于资源?是否存在任何潜在威胁

<%=HttpUtility.HtmlEncode(Resources.MyResourceString)%>


如果您的资源来自已知的安全源(我怀疑他们是这样),那么您不需要这样做,不。

如果您的资源来自已知的安全源(我怀疑他们是这样做的),那么您不需要这样做,不。

不是为了防止跨站点脚本-也就是说,除非您的用户可以访问应用程序的资源,并且可以插入恶意内容

不阻止跨站点脚本编写-也就是说,除非您的用户可以访问应用程序的资源,并且可以插入恶意内容

如果您的资源是HTML,那么不要重新编码它们。如果它们是文本,则HtmlEncode


如果您的资源只是普通的旧文本(即可能包含原始的符号或尖括号),那么即使您没有打开XSS漏洞,您仍然需要对它们进行HtmlEncode,以便生成有效的HTML

如果您的资源是HTML,那么不要重新编码它们。如果它们是文本,则HtmlEncode


如果您的资源只是普通的旧文本(即可能包含原始的符号或尖括号),那么即使您没有打开XSS漏洞,您仍然需要对它们进行HtmlEncode,以便生成有效的HTML

这实际上是一个比我更好的答案;我对自己没有注意到这一点感到有点失望
HtmlEncode
不一定是关于其根目录的安全性,而是关于对文本进行正确编码,使其在输出中“按字面意思”显示。如果资源应该是“文字文本”,那么它们应该在输出时进行编码;我对自己没有注意到这一点感到有点失望
HtmlEncode
不一定是关于其根目录的安全性,而是关于对文本进行正确编码,使其在输出中“按字面意思”显示。如果资源应该是“文字文本”,那么在输出时应该对它们进行编码;其实比我的好,也请看Yuliy的答案;它实际上比我的好。