【问题标题】:What to return when Server Side validation fails服务器端验证失败时返回什么
【发布时间】:2018-04-28 18:30:37
【问题描述】:

我目前正在对所有表单使用客户端 HTML 验证。这包括数量必须是正整数价格必须非零。我已在客户端强制执行此操作,并且也在服务器端执行此操作。但现在我想知道是否值得为表单的每个字段添加错误消息,或者只返回HTTP 400 Bad Request/HTTP 422 Unprocessable Entity

是否可以将任何通过客户端验证的数据视为恶意数据,或者是否存在客户端可能输入错误数据而无意通过客户端验证的情况?
(注意: 我没有使用任何 javascript,只是输入标签中的 HTML patternminmax 属性。)

编辑/TL;博士

客户端验证失败时会显示漂亮的错误消息。服务器端验证应该做同样的事情,还是返回一个通用的 HTTP 错误页面?

【问题讨论】:

  • 我总是会亲自使用正面和背面的验证 - 但这个问题太宽泛了。
  • @DarrenSweeney 我在两端都使用验证。客户端验证向用户显示漂亮的错误消息。我想知道服务器端验证是否也应该显示漂亮的错误消息或通用 HTTP 错误页面。我将编辑问题以显示这一点。

标签: html validation client-side-validation server-side-validation


【解决方案1】:

仅当浏览器不支持您使用的验证属性时。根据 caniuse 的说法,pattern 属性目前是supported in all current desktop browers, but not all mobile browsers

也就是说,如果您针对当前的桌面浏览器,服务器端错误只会显示给恶意用户,并且没有理由不遗余力地提供有用的错误消息。另一方面,如果您在移动市场,您可能希望为使用功能较弱的浏览器的可怜人添加有用的错误消息。

【讨论】:

  • 完美,谢谢!这只是我的一个小项目(一个概念验证),而且设计在移动设备上已经很糟糕了,所以我只会坚持服务器端的错误。
猜你喜欢
  • 2017-10-13
  • 1970-01-01
  • 2022-08-16
  • 2012-05-31
  • 1970-01-01
  • 1970-01-01
  • 2011-07-07
  • 1970-01-01
  • 2011-09-05
相关资源
最近更新 更多