服务器端验证失败时 return 做什么

What to return when Server Side validation fails

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

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

编辑/TL;博士

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

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

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