Модель угроз начинается с активов
Дневник содержит личные данные, session id, хеши паролей и историю изменений. Для каждого потока отметьте источник, границу доверия, допустимую операцию и последствия подмены, раскрытия или отказа.
Checklist не заменяет модель: prepared statement закрывает SQL-значение, но не проверяет право читать workout_id. Контекстное экранирование защищает вывод, но не ограничивает размер загружаемого файла.
Сигналы одного запроса
Лимит — часть безопасности
Ограничьте размер тела, число полей, длину строки, число строк импорта, page size, время выполнения и объём вывода. Без лимита корректный синтаксис может стать отказом в обслуживании.
Rate limit применяется к дорогому или чувствительному действию и возвращает наблюдаемый 429. Ключ только по IP несправедлив для общей сети; ключ только по user id не помогает до входа. Обычно комбинируются несколько сигналов.
Профиль раньше cache
Сначала измерьте latency по этапам, число SQL-запросов, планы EXPLAIN, память и размер ответа. N+1 исправляется запросом или проекцией, а не общим кешем, скрывающим проблему.
OPcache компилирует PHP-код и требует согласованной стратегии публикации. Кеш предметных данных получает ключ, TTL, правило инвалидирования и поведение при промахе. Если эти четыре пункта неизвестны, кеш создаст устаревшие ответы.
SLO связывает технику и пользователя
Например, 99% чтений недельного журнала завершаются успешно быстрее выбранного порога. SLI измеряет статус и latency, SLO задаёт цель, error budget помогает решать, когда приоритетом становится надёжность.
Не собирайте метрики с бесконтрольной кардинальностью: raw URL с id пользователя взорвёт число временных рядов. Используйте имя маршрута и ограниченный набор label.
Лабораторная работа
Постройте threat model публикации и импорта CSV. Затем задайте три метрики, один SLO и эксперимент производительности, который отличает SQL-задержку от рендеринга Twig.
Закрепите материал
Отметка, заметка, чек-лист и ответы остаются в localStorage этого браузера и не отправляются в аналитику.
Перелинковка со справочником
Проверка актуальности
- cheatsheetseries.owasp.orghttps://cheatsheetseries.owasp.org/cheatsheets/Authentication_Cheat_Sheet.htmlПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- cheatsheetseries.owasp.orghttps://cheatsheetseries.owasp.org/cheatsheets/Session_Management_Cheat_Sheet.htmlПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- cheatsheetseries.owasp.orghttps://cheatsheetseries.owasp.org/cheatsheets/Cross-Site_Request_Forgery_Prevention_Cheat_Sheet.htmlПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
- cheatsheetseries.owasp.orghttps://cheatsheetseries.owasp.org/cheatsheets/Logging_Cheat_Sheet.htmlПервичный источник для актуализации фактов. Адрес приведён как текст и не является активной ссылкой.
Текст и схемы созданы для этого самоучителя без воспроизведения страниц, иллюстраций и листингов приложенной книги. Проверено: .