gpt4 book ai didi

c# - 使用 HTML 编码字符的 ASP.NET 请求验证

转载 作者:太空狗 更新时间:2023-10-30 01:10:54 24 4
gpt4 key购买 nike

我有一个表单中的文本框,需要接受带有 HTML 标签的输入。

提交带有 HTML 标记的输入会使应用程序抛出 HttpRequestValidationException,除非我们使用 HttpUtility.HtmlEncode。到目前为止很简单。

但是,输入也可能包含符号,例如“度”符号 (°)。当这些也是 HTML 编码时,它们变成数字转义码,在本例中为 °。这些代码也会导致抛出 HttpRequestValidationException,但问题是为什么?

我不明白为什么数字转义码被认为具有潜在危险,尤其是当 ° 作为输入正常工作时。

我似乎被卡住了,因为标签导致输入按原样失败,而 HTML 编码输入由于数字转义而失败。到目前为止,我的解决方案是 HTML 编码,然后正则表达式用 HTML 解码形式替换转义序列,但我不确定这是否是一个安全的解决方案,因为我认为转义序列被视为危险是有原因的。

最佳答案

这是由于 ASP.NET 内置 Cross Site Scripting验证能力。有一些 ASP.NET 允许的和不允许的列表,这里是:ASP.NET request validation causes: is there a list?

关于 # 编码字符的具体情况,这里有完整的 XSS 攻击引用:XSS (Cross Site Scripting) Cheat Sheet这证明了这些攻击有多么复杂,以及为什么禁止使用编码字符。

关于c# - 使用 HTML 编码字符的 ASP.NET 请求验证,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3750130/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com