Фон
Мене домовили про допомогу компанії підтримувати їх сервер. Я працюю над деякими незначними проектами 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 Конспект Чому це питання Що може статися, якщо це не виправлено Пропоноване виправлення