让我明确一点,我只是在谈论 URL 中可能存在的安全漏洞(而不是在页面上、查询中或其他任何地方)。
问题是我注意到在表单中使用“GET”不会对尖括号进行编码。
C#.Net 在使用时不会原谅 URL 中的尖括号,Request.QueryString
因此我被迫使用Request.Unvalidated
,但如果 URL 中单独的尖括号存在安全风险(即其他特殊字符,如括号,撇号、引号等正确编码)。
在这个站点上:https ://www.owasp.org/index.php/XSS_(Cross_Site_Scripting)_Prevention_Cheat_Sheet我读到 JavaScript 可以直接从 URL 运行,虽然我从未成功尝试过,但我需要这样做事先确定我是否需要提交按钮(当然,如果我这样做,则不会有那种类型)指向我自己的 Javascript,自己对其进行编码,然后使用 JavaScript 从那里适当地提交表单, 或者如果我只是请求未经验证的数据并继续前进。
通常我只会走我可以保证是最安全的路线,但是强迫我的用户使用javascript只是为了提交一个简单的搜索表单似乎是一种反好的做法。