输入验证的常见实践是什么?换句话说,您是否在客户端,服务器端或两侧检查输入验证吗?

另外,如果绩效对我至关重要,那么在没有出现任何安全风险的情况下,仅客户端输入验证就足够了吗?

有帮助吗?

解决方案

始终至少执行服务器端验证。如果您想改善用户体验,客户端验证可能会很好。它还允许您避免对服务器的不必要请求。

例如,仅通过禁用JavaScript,可以轻松绕过客户端验证。

我建议您始终从添加服务器端验证开始,一旦测试,您就可以启用客户端验证。

其他提示

不要依靠客户端验证!!!
它只是诚实的用户。不诚实的用户可以立即解决。

如果我关闭JavaScript,我可以将您的应用程序敲打。始终将服务器端验证放入...并不难

网络表单

''# VB
If Page.isValid Then
    ''# submit your data
End If

// C#
if(Page.isValid) {
    // submit your data
}

MVC

''# VB
If ModelState.IsValid Then
    ''# submit your data
End If

// C#
if(ModelState.IsValid) {
    // submit your data
}

服务器端验证运行后,然后继续添加客户端验证。它将为用户提供更好的体验

我建议使用的一件事是 荧光验证, xvaljQuery 一起执行客户端和服务器端验证 基于相同的规则.

荧光验证 是基于规则的框架,可在服务器端验证.NET对象。它带有规则提供商 xval, ,这是另一个框架,使您可以链接服务器端和客户端验证框架的选择。它支持在客户端生成jQuery验证器

通常在两边。客户端很容易被故意或无辜地绕过(noscript的流行率),但值得出于可用性原因。

关于它是否带来安全风险。您使用的用户输入是什么?验证的当前性质是什么?

如果只是检查某人是否已经以形式填写了强制性字段,那么可能会有安全风险。

需要在SERD验证验证时使用它,因为CLIE端验证很容易被绕过。

如果您想具有BTTER用户的剥夺,请使用客户端验证。这也会提高性能,因为它减少了对服务器的HTTP请求数量,因为无效的表单不会发送到服务器。

最常见的是同时使用客户端和服务器端验证。

只有客户端输入验证是否足以在我的网站上不出现任何安全风险?

不,您也应该使用服务器端验证。用(例如)firebug删除客户端验证非常简单。显然,在删除客户端验证后,evildoer可以将任何数据发送到服务器。因此,也强烈需要服务器端验证。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top