Безопасность
Рубрика про то, как ломается небезопасный код и как его чинить. Каждую уязвимость разбираем на рабочем примере: сначала запускается уязвимая версия, затем та же программа с защитой, и один и тот же ввод, который ломал первую, вторую уже не пробивает. Указана версия языка и среды, вывод программы приводим дословно.
Начинаем с SQL-инъекции: почему приложение исполняет чужой код, как через одну кавычку обходят вход и читают чужие данные, чем параметризованные запросы закрывают дыру, которую не закрывает экранирование кавычек. Разбираем и соседние меры: whitelist для имён столбцов, минимальные права учётной записи базы данных, поиск уязвимых мест анализатором кода. Инструкций против чужих систем здесь нет: только учебный стенд и защита своего кода.

