Пишемо безпечний код на php

Перше правило: ніколи не довіряйте своїм користувачам

Дане правило звучало зі сторінок мого сайту вже не раз, але воно тим не менш залишається найголовнішим і буде сказано ще і ще! Ви ніколи не повинні довіряти даним, які посилають ваші користувачі. Залишаючи осторонь, що проломи в безпеці ваших додатків можуть скористатися зловмисники, проблеми можуть також виникати через ненавмисного поведінки користувачів.

Отже, головне правило будь-якого веб-розробника: Ніколи не довіряти своїм користувачам.

Глобальні змінні

Цього можна уникнути, відключивши цю опцію. На щастя, на багатьох хостингах вона відключена за замовчуванням. Однак якщо вам все ж необхідно використовувати глобальні змінні, вам слід заздалегідь оголошувати такі важливі змінні:

Повідомлення про помилки

Повідомлення про помилки корисні при налагодженні веб-додатків. Розробники мають потребу в них, щоб виправити помилки, а хакери можуть використовувати їх для отримання різної інформації, такої як структура програми, версії сервера баз даних. Тому, після налагодження своїх додатків і запуску сайту необхідно відключити повідомлення про помилки. У .htaccess або php.ini слід виставити "error_reporting 0".

SQL-ін'єкції

Однією з найсильніших сторін мови PHP є легке і швидке взаємодії з базами даних, в першу чергу з MySQL. Зараз більшість сайтів побудовано в зв'язці PHP + MySQL.

Однак, як і слід було очікувати, це спричинило за собою потенційні проблеми безпеки веб додатків. Найбільш поширеними уразливими є SQL-ін'єкції - несанкціоноване виконання SQL-запитів до бази даних.

Детально про SQL ін'єкції і захисту від неї я написав в статті Захист від SQL-ін'єкцій.

Маніпуляції з файлами

Налаштування за замовчуванням

передбачуваність

Нарешті, переконайтеся, що ваші повідомлення про помилки входу не несуть додаткової інформації зломщикові. Наприклад, якщо у вас виводитися помилка "Невідомий користувач", то зломщик легко здогадається, що підібрав потрібний логін, коли не побачить цієї помилки.

Нарешті, будьте пильні

Схожі статті