1

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

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

编辑/TL;博士

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

4

1 回答 1

1

仅当浏览器不支持您使用的验证属性时。根据 caniuse 的说法,目前所有桌面浏览器都支持 pattern 属性,但并非所有移动浏览器

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

于 2018-04-28T19:02:42.920 回答