Цель:

Научиться закрывать уязвимости Web-приложений за счет написания безопасного кода

Задание:

  1. Устранить уязвимость в написанном ранее сайте - SQLi
  1. Устранить уязвимость в написанном ранее сайте - XSS
  2. Устранить уязвимость в написанном ранее сайте - PHPi

Краткая инструкция:

<aside> 💡 Использовать WAF как средство защиты в целом отличная практика, но не стоит забывать, что и в WAFе могут быть уязвимости. Поэтому, точно так же как и в период до появления WAF систем, необходимо писать безопасный код.

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

</aside>

Устранение SQLi

Перейдем к уязвимости, которая у нас была в файле posts.php, именно в этом файле мы эксплуатировали уязвимость SQLi, хотя уязвимость присутствует и в других файлах.

Для начала посмотрим на код php этого файла

Untitled

Самый простой способ защиты от SQLi - это приведение к целочисленному типу, но это работает только там, где используются числовые значения, что хорошо подходит к нашему случаю.

Допишем в код, сразу после получения значения id приведение к целочисленному значению

settype($id, 'integer');