Як убезпечити сайт
Я вже багато разів говорив, що найбезпечніші сайти - це сайти, написані самостійно з нуля. Фактично, Ви защіщатся тим самим від всяких школярів, що уявляють себе великими хакерами, яких дуже багато. Однак, є люди, знання яких досить для злому досить серйозних сайтів, написаних з нуля. Тому щоб Ваш сайт витримав цю атаку, я вирішив написати цю статтю і розповісти, як убезпечити сайт.
Найголовніше - це завжди задавати самому собі питання: "А що буде, якщо ...?". Якщо Ви завжди будете задаватися таким питанням, то Ваш сайт завжди буде захищений практично на 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