Ну, вместо того, чтобы использовать только @login_required, я предлагаю вам взглянуть на структуру разрешений и связанный с ней требуемый уровень разрешения декоратора . Таким образом, вы можете точно настроить ограничения доступа для пользователей или групп. Также проще и безопаснее изменить поведение пользователя впоследствии с разрешениями, чем с помощью декоратора login_required. Предположим, что теперь у вас есть только администраторы, но позже вы захотите добавить других типов пользователей, тогда легко пропустить декоратор login_required и предоставить этим пользователям доступ к представлениям администратора. У вас не будет этой проблемы с правильно определенными разрешениями.
Затем is_ajax просто проверяет заголовок HTTP_X_REQUESTED_WITH. Это на самом деле не связано с безопасностью, но с дружественным поведением. Таким образом, вы предотвращаете случайное открытие этой страницы в браузере обычным пользователем и получение некоторых странных данных. В безопасности это не поможет, каждый порядочный хакер может установить дополнительный HTTP-заголовок:).
Необработка исключений может быть потенциально опасной, если вы случайно уйдете на DEBUG=True
, и в этом случае django предоставит фрагменты кода и обратные трассировки, потенциально выявляя слабые места. Но если эта опция отключена, django покажет свою собственную страницу с ошибкой 500. Мое предложение таково: ищите все ожидаемые исключения django (их не так много) и убедитесь, что вы правильно их уловили. Кроме того, я бы сказал, что django будет обрабатывать другое исключение, django будет по-прежнему предоставлять возможность генерировать трассировки и другую отладочную информацию и отправлять их администраторам вместо отображения их на месте. Если вы обнаружите все непредвиденные ошибки, это поведение не будет доступно напрямую, возможно, вы не узнаете о сбое кода.
Наконец, когда вы работаете с пользовательскими входными данными, я бы посоветовал вам взглянуть на главу о безопасности в книге django, в которой объясняются наиболее важные угрозы и способы их устранения в рамки Джанго.