Eve:在响应中抑制验证错误详细信息

Eve: Suppress validation error details in response

为了保护我的 public Eve REST API,我想避免像 '{"_status": "ERR", "_error": {"code": 422, "message": "Insertion failure: 1 document(s) contain(s) error(s)"}, "_issues": {"magicfield": "requiredfield"}}' 这样的回复。

相反,我只想 return 状态代码 401 的响应主体为空(或者至少是一个空的“_issues”字段)。有什么办法吗? Authentication/authorization 不是一个选项,因为它是一个 public 注册资源(public 方法 POST 允许)。

我已经把状态码改成了401(VALIDATION_ERROR_STATUS),但是还是有具体的验证错误,所以攻击者可以根据验证错误"fix"他的请求。

目的是仅允许其中包含某些魔法字段值的请求(针对特定长度等进行验证)并禁止对该资源的所有其他请求。

你调查过 event hooks 了吗?尝试这样的事情:

def my_callback(resource, request, response):
    data = response.json
    del(data['_issues'])
    del(data['_error'])
    response.set_data(json.dumps(data))

app = Eve()
app.on_post_POST += my_callback
app.run