Eve: Подавить детали ошибки проверки в ответе - PullRequest
0 голосов
/ 05 июня 2018

Чтобы защитить мой общедоступный Eve REST API, я хочу избегать ответов типа '{"_status": "ERR", "_error": {"code": 422, "message": "Insertion failure: 1 document(s) contain(s) error(s)"}, "_issues": {"magicfield": "requiredfield"}}'.

Вместо этого я просто хочу вернуть код состояния 401 с пустым телом ответа (или хотя бы пустым полем "_issues").Есть ли способ сделать это?Аутентификация / авторизация не является опцией, поскольку это общедоступный ресурс регистрации (общедоступный метод POST разрешен).

Я уже изменил код состояния на 401 (VALIDATION_ERROR_STATUS), но по-прежнему существует конкретная ошибка проверки, поэтомуЗлоумышленник может «исправить» свой запрос в соответствии с ошибкой проверки.

Цель состоит в том, чтобы разрешить запросы только с некоторым значением магического поля (которое проверено на определенную длину и т. Д.) И запретить все другие запросы для этого ресурса.

1 Ответ

0 голосов
/ 06 июня 2018

Вы смотрели на события ?Попробуйте что-то вроде этого:

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
...