Javascript Web资源的用户凭据是否需要Html.Encode?

Javascript Web资源的用户凭据是否需要Html.Encode?,javascript,c#,asp.net,security,xss,Javascript,C#,Asp.net,Security,Xss,我们有一个简单的实用程序,可以通过HttpWebRequest为用户访问web资源 此web资源需要登录凭据(用户名/密码)。凭据用于访问资源,不存储在数据库中 Encode用于帮助防止XSS攻击。但是,当对这些凭据进行编码时,它们可能会被破坏。例如,如果密码是john&123,则使用Html.Encode将密码更改为john&;123,有效地破坏了密码 我们如何安全地利用用户输入的用户名和密码字符串,同时防止XSS 或者,这不是一个很大的问题,因为在客户端浏览器上显示用户输入时XSS主要

我们有一个简单的实用程序,可以通过HttpWebRequest为用户访问web资源

此web资源需要登录凭据(用户名/密码)。凭据用于访问资源,不存储在数据库中

Encode用于帮助防止XSS攻击。但是,当对这些凭据进行编码时,它们可能会被破坏。例如,如果密码是
john&123
,则使用Html.Encode将密码更改为
john&;123
,有效地破坏了密码

我们如何安全地利用用户输入的用户名和密码字符串,同时防止XSS


或者,这不是一个很大的问题,因为在客户端浏览器上显示用户输入时XSS主要是一个问题吗?如果是这样,在临时使用用户输入访问web资源时,是否需要注意(安全性方面)?

您可以使用HttpUtility.HtmlDecode()或WebUtility.HtmlDecode()获取原始字符串


但是,是的,如果字符串在页面上呈现,则只需要担心XSS,如果字符串用于访问数据库的查询,则只需要担心SQL注入。在您的情况下,听起来像是用户将凭据输入到表单中,由后端用于访问外部web服务,然后丢弃。如果是这样,XSS/SQL注入是外部web服务的问题,而不是您的问题。

同意。希望添加以下链接,使海报从阅读中受益: