Як убезпечити сайт
Я вже багато разів говорив, що найбезпечніші сайти - це сайти, написані самостійно з нуля. Фактично, Ви защіщатся тим самим від всяких школярів, що уявляють себе великими хакерами, яких дуже багато. Однак, є люди, знання яких досить для злому досить серйозних сайтів, написаних з нуля. Тому щоб Ваш сайт витримав цю атаку, я вирішив написати цю статтю і розповісти, як убезпечити сайт.
Найголовніше - це завжди задавати самому собі питання: "А що буде, якщо ...?". Якщо Ви завжди будете задаватися таким питанням, то Ваш сайт завжди буде захищений практично на 100%.
Тепер же давайте розберемо найосновніші способи захисту. Найвразливіше місце - це скрипти-обробники входять даних з форм. Завжди перевіряйте те, що вводиться користувачем в форму. Для цього використовуйте регулярні вирази.
Також завжди викликайте функцію htmlspecialchars (), яка замінює небезпечні символи на суті. Виняток - ті дані, в яких і повинен бути HTML-код.
Якщо в запиті до бази даних використовуються дані, ведений користувачем, то завжди ці вхідні дані екрануйте за допомогою функції addslashes (). Цю функцію треба використовувати тільки, якщо відключена директива magic_quotes_gpc. Якщо вона включена, то всі вхідні дані екрануються автоматично.
Завжди відключайте директиву register_globals. Як показує практика, абсолютна більшість програміст не ініціалізують змінні. Наведу простий приклад:
lt ;?php
$ mysqli =new mysqli("Localhost","Root","","Mydb") -
$ array["First"]="1"-
$ array["Second"]="2"-
foreach($ array as $ key = Gt; $ value){
$ mysqli-gt;query("DELETE FROM` my_table` WHERE `field` = `$ value`") -
}
?gt;Якби Ви проініцілізіровалі масив так: $ Array = array () -, то все було б гаразд. Однак, упевнений, що далеко не всі з Вас так роблять. В результаті, зловмисник переходить на таку адресу: http: //адрес_сайта/адрес_скріпта.php? array [zero] = 0, і Ваш скрипт благополучно видаляє ту запис, яку видаляти не варто. А нічого не було б, якби була відключена директива register_globals.
Відео: Урок 63 - Уразливості сайту: як захистити сайт від злому
Підведу невеликий підсумок:
- Завжди пропускайте вхідні дані через htmlspecialchars (), за винятком тих випадків, де необхідно залишити HTML-теги.
- Перевіряйте всі вхідні дані на правильність, використовуючи рядкові функції і / або регулярні вирази.
- Пропускайте вхідні дані через функції stripslashes (), якщо вони будуть використовуватися в запитах до бази даних. Не лякайтеся, що в базу потраплять екрановані символи. Ні, дані в базі будуть такими ж, якими їх відправляли в формі. Просто сам запит буде безпечним.
- вимикайте register_globals.
- Завжди перевіряйте роботу скриптів на самих різних вхідних даних. Не забувайте, що якщо Ви просите ввести, наприклад, прізвище, користувач не захоче ввести який-небудь JS-код.
Відео: ЗАХИСТ Веб-сайту від вірусів і злому ●) айтішників
Це лише частина найпростіших і самих основних правил про те, як убезпечити сайт. У більшості випадків їх дотримання вже більш, ніж достатньо, щоб Ви могли спати спокійно.
Як зробити моніторинг сервера
Вийшов відеокурс "php і mysql з нуля до гуру"
Що таке сайт під ключ
Чому dreamweaver - це погано?
Як вибрати ідею для сайту?
Коли використовувати post, а коли get?
Як створити соціальну мережу
Як перенести сайт на інший хостинг
Які ставити права доступу на хостингу
Що необхідно знати перш, ніж вчитися створювати сайти
Як підняти відвідуваність сайту
Установка favicon на сайт
Онлайн-семінар "5 кроків і професійний сайт готовий"
Чи не працює sql-запит
Движок (конструктор) або сайт з нуля?
План розкрутки сайту
Регулярні вирази
Валідність відкриття посилання в новому вікні
Російська мова та регулярні вирази в php
Joomla vs сайт з нуля
Unable to connect to the database в joomla
Як вибрати ідею для сайту?
Регулярні вирази
Як зробити моніторинг сервера
Як підняти відвідуваність сайту
Joomla vs сайт з нуля
Рекурсія в php
Як створити соціальну мережу
Російська мова та регулярні вирази в php
Чому dreamweaver - це погано?
Як перенести сайт на інший хостинг