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
为了保护我的 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