Фон
Я был заключен контракт, чтобы помочь компании поддерживать свой сервер. Я работаю над небольшими PHP-проектами, но также смотрю на проблемы с производительностью и в последнее время сканирую логи на хакеров.
Эти ребята уже некоторое время работают на своем сервере, и у меня на последних ногах есть то, что я бы назвал устаревшим приложением. Он использует магические кавычки, глобальные переменные (что позволяет $id
их перезаписывать $_GET['id']
), использует .htaccess в качестве единственной защиты в некоторых случаях, вы называете это. Кошмар безопасности и программирования.
В прошлом нас взламывали, в основном с помощью SQL-инъекций, которые запускали SLEEP(99999999)
команды и действовали как DOS-атака. К счастью, они не управляли «маленькими заколоченными столиками»,
XKCD: http://xkcd.com/327/
Поэтому я переписал их уязвимые операторы SQL из mysql_query()
(не mysqli) в транзакции PDO. Я также анализирую запросы для SLEEP
и UNION
, которые мы не используем, но есть уколы. Все идет нормально.
Последний выпуск
Недавно нам сообщили, что записи в БД изменяются для пользователей, например, их адреса электронной почты на адреса, предположительно сделанные спамерами.
Я заметил, что у их столбцов не было last_modified
столбца, поэтому мы даже не могли знать, когда они менялись, не говоря уже о том, кто. Я добавил этот столбец, но это только первый шаг.
Когда я просматривал эту таблицу, я заметил, что пароли не были засолены или даже хешированы, а просто сохранены в виде открытого текста.
Общение с клиентами
Как я могу подойти к ним по поводу всей ситуации, как подрядчик, не размахивая руками, как сумасшедший? Любой совет? Я думал о спокойном подходе,
ВЫПУСК № 1 конспект Почему это проблема Что может случиться, если это не исправить Предлагаемое исправление ВЫПУСК № 2 конспект Почему это проблема Что может случиться, если это не исправить Предлагаемое исправление