Раскрытие информации в ошибках

Подробные сообщения об ошибках раскрывают структуру системы и помогают атакующему.

СигнатураInformation disclosure via errors

Раскрытие информации через ошибки происходит, когда пользователю показывают трейсбеки, SQL-запросы, версии ПО или пути файлов. Эти детали помогают атакующему построить целенаправленную атаку.

Как защититься: показывайте пользователю обобщённое сообщение и идентификатор ошибки, а детали пишите только в защищённый лог; отключайте debug в продакшене; не раскрывайте в ответах о входе, существует ли учётная запись.

import logging

def handle_error(exc):
    # Детали — в лог, пользователю — обобщённо
    logging.exception("internal error")
    return {"error": "Внутренняя ошибка", "id": new_error_id()}, 500
← Все записи: Веб-уязвимости и защита
Поддержать проект