当请求验证已经处于戒备状态时,是否需要对用户输入进行消毒

本文关键字:用户 输入 是否 验证 请求 戒备状态 | 更新日期: 2023-09-27 18:03:25

请求验证是一种强大的机制,可以防止通过请求向服务器注入恶意代码。这是在服务器端完成的,所以无论客户端验证是否完成,都可以确定是否有不寻常的事情发生,然后将自动抛出异常。

我的问题:而我们有&;Request validation&;现在,还需要对请求进行消毒吗?

我正在使用Asp.net MVC 5.0

PS:

我只是在谈论web(不是数据库或其他东西)及其潜在漏洞(如XSS)的背景下。

当请求验证已经处于戒备状态时,是否需要对用户输入进行消毒

是的!在ASP中有大量完全有效的输入。如果处理不当,可能会导致应用程序出现问题。

例如,如果有人在请求中传递了一些数据,而你没有正确地在数据层参数化查询,那么这个输入:

x'; DROP TABLE users; --

可能导致以下查询:

SELECT FieldList
FROM Users
WHERE Email = 'x'; DROP TABLE Users; --

哦不!您丢失了Users表!

无论请求是否验证,您都应该始终将用户输入视为恶意输入。这演示了一些场景,其中请求验证无法挽救您的皮肤。

当你呈现用户提供的输入时,HTML编码是很重要的…永远不要使用@Html.Raw呈现任何不可信的输入,并注意HtmlHelpers正确编码来自用户的任何内容。 纵深防御很重要。请将请求验证视为该过程的一部分。

这是关于MSDN上的Xss和请求验证的链接

https://msdn.microsoft.com/en-us/library/vstudio/hh882339%28v=vs.100%29.aspx?f=255& MSPPError = -2147217396