Должен ли я отлавливать ошибки, которые никогда не возникнут у обычного пользователя? - PullRequest
5 голосов
/ 02 февраля 2012

У меня есть строка, где я беру строку базы данных с .get(field = ID). Обычный пользователь всегда отправляет ID, который существует в базе данных, но хакер не может, и он генерирует исключение DoesNotExist. Важно ли явно его отлавливать или я должен просто оставить исключение в таком случае необработанным? В любом случае, хакер не увидит ни одного сообщения, поэтому в любом случае угрозы безопасности нет.

Мне также интересно, должен ли я регистрировать это исключение при неудаче. Было бы интересно услышать, что вы, ребята, делаете в качестве общего практического правила, и ваше обоснование того, что вы регистрируете / ловите, а не то, что вы позволяете создать неперехваченное исключение.

1 Ответ

2 голосов
/ 02 февраля 2012

Важной частью является то, в каком контексте вы используете это поле.Если вы заходите на страницу через /profile/[ID], я бы отобразил страницу Пользователь не найден .Если вы сделаете что-то подобное

ID = context["user"].id
Object.get(field = ID)

, я не буду пытаться отловить ошибку отдельно.

В общем, я сохраняю каждую ошибку, которая не может быть вызвана обычным поведением пользователя.Затем я могу заглянуть в свой журнал ошибок и непосредственно увидеть, где мой сайт вызывает сбои или пытались ли хакеры найти дыру в безопасности.

После этого я исправляю это неопределенное поведение, чтобы журнал ошибок был пуствозможно.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...