【问题标题】:Should input validation be client-side or server-side for Enterprise applications?企业应用程序的输入验证应该是客户端还是服务器端?
【发布时间】:2019-09-15 06:40:00
【问题描述】:

我知道客户端或服务器中的验证可能存在问题。 但这个适用于企业应用程序,例如销售、客户系统

数字、字符串、日期等输入验证是否应该在客户端?还是强烈地两者兼而有之?或仅在服务器端。

询问的原因是:

  1. 我看到一些专业会计师可以通过Inspect浏览器更改一些输入标签。其中一些会更改受客户端验证限制的交易的借方价值。
  2. 作为最终用户的一些人还尝试通过检查(在客户端执行操作)将日期更改为以前的持续时间!这是不允许的,所有基于 Web 的都从客户端进行这些验证。

在服务器端验证示例中(检查 branch 是否存在,检查 Store 是否存在。在这些情况下没有发生问题,因为它已经在服务器端了。)我不讲这些(和数据库有关的东西)

再次。 很抱歉提出这样的问题。但请提供从事企业解决方案工作的人的意见,这将有助于我做出选择。

【问题讨论】:

  • 客户端验证是为了让用户清楚地知道期望什么。所有提交的信息绝对必须在服务器上验证
  • 客户端验证非常适合 99.9% 想要输入正确信息的用户。它通过在出现问题时立即告诉他们来改善他们的体验。但是有些用户想输入错误的信息。就像你给他们一个值列表,然后他们编辑 HTML 以便他们可以发布错误的值,或者只是为了好玩或做一些坏事。或者他们可以只使用 Postman 或其他东西发送请求,并回避您的客户端验证。
  • 作为客户端做 ajax-server-side 验证怎么样?这有意义吗
  • Pointy,你的意思是日期验证也必须在服务器端吗?如果那个日期非常重要并且不能是以前的持续时间?但是只包含任何值的无用字段应该在客户端?
  • @Pointy !你能回复评论吗!

标签: javascript c# html asp.net .net


【解决方案1】:

始终在服务器端验证所有用户数据。就像在 ALWAYSALL 中一样。

客户端验证仅适用于 UX。

编辑:添加全部

P.S.:你不能信任用户
P.P.S.:你不能信任用户!!!我什至可能不是坐在屏幕前办公桌前的用户。它可能只是一个试图破坏您的表单的软件。 它可能我的意思是它会!有成千上万的爬虫最终会攻击您的系统。

【讨论】:

  • 我的意思是特殊字段,例如(借记值,数量有限)。日期(有时不能是以前的持续时间)和应该在客户端制作的东西?应该在服务器端实现。
  • @kokowawa “始终在服务器端验证用户数据”不清楚吗?
  • @kokowawa 您的服务器软件甚至无法判断客户端检查是否正在发生。您的服务器不知道客户端是什么;它可能不是浏览器。
  • 我猜如果一个使用 asp.net mvc 的例子。我现在绝对是零技能。 ;p
  • @yunzen 好的,你被选中了!所以你的意思是重要的数字,日期必须在服务器端?但在浏览器中充当客户端验证?这不是你的意思吗
猜你喜欢
  • 2012-02-05
  • 1970-01-01
  • 2011-04-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多