我们有一个简单的实用程序,它通过HttpWebRequest访问用户的Web资源。
此Web资源需要登录凭据(用户名/密码)。凭证用于访问资源,不存储在数据库中。
Html.Encode用于帮助防止XSS攻击。但是,当这些凭据被编码时,它们可能会被破坏。例如,如果密码为john&123
,则使用Html.Encode会将密码更改为john&123
,从而有效地破解密码。
如何在防止XSS的同时安全地使用用户输入的用户名和密码字符串?
或者,这不是一个问题,因为在客户端浏览器上显示用户输入时,XSS主要是一个问题吗?如果是这样,在暂时使用用户输入来访问网络资源时,是否有任何需要注意的事项(安全方面)?
答案 0 :(得分:1)
您可以使用HttpUtility.HtmlDecode()或WebUtility.HtmlDecode()来获取原始字符串。
但是,是的,如果字符串在页面上呈现,则只需要担心XSS,如果在查询数据库中使用该字符串,则只需要SQL注入。在您的情况下,听起来用户将凭据输入表单,后端用于访问外部Web服务,然后丢弃。如果是这种情况,XSS / SQL注入是外部Web服务的问题,而不是你的问题。