Вот некоторые общие меры безопасности, которые должен соблюдать начинающий и Advance Web Developer.
#15 Steps To Secure Your Website
1: предотвращение хотлинкинга изображений (IMP)
Горячая ссылка на изображение - это процесс использования чужого URL-адреса изображения на нашем веб-сайте и использования его пропускной способности. Чтобы предотвратить эту загадку, мы можем запретить доступ к внешнему серверу, добавив следующую строку в коде.
RewriteCond %{HTTP_REFERER} !^http(s)?://(www\.)?yourdomain.com [NC]
RewriteRule \.(jpg|jpeg|png|gif)$ - [NC,F,L]
2: предотвращение атак CSRF (подделка межсайтовых запросов)
Чтобы предотвратить атаки CSRF на ваши запросы GET и POST для отправки формы, вы можете использовать следующие 2 метода.
Первое, что включает случайный токен с каждым запросом, это уникальная строка, которая генерируется для каждого сеанса.
Второй метод заключается в использовании случайного имени для каждого поля формы.
3: запретить доступ к каталогам / отключить индексирование
Добавьте следующую строку в ваш файл .htaccess.
Options -Indexes
4: Защита вашего личного доступа и входа в CMS с ограничениями IP
IP-ограничение - это немного более продвинутый, но эффективный метод, позволяющий неавторизованному персоналу получить доступ к определенной области вашего сайта.
Вот пример кода htaccess для IP, ограничивающего доступ к определенному местоположению.
ALLOW USER BY IP
<Limit GET POST>
order deny,allow
deny from all
allow from 1.2.3.4
</Limit>
5: защита вашего файла .htaccess
Вы можете написать приведенный ниже фрагмент кода в файле htaccess, который не позволяет другим доступам к вашему файлу htaccess.
<Files ~ “^.*.([Hh][Tt][Aa])”>
order allow,deny
deny from all
satisfy all
</Files>
6: правило доступа к функции
Добавляя «_» в качестве префикса для имени функции, мы можем запретить публичный вызов функции из Интернета. Это лучший метод, когда нам нужна определенная функция, доступ к которой возможен только через AJAX.
7: заблокируйте ваш каталог и права доступа к файлам
Права доступа к файлу определяют, кто может что делать с файлом.
«Read» = 4: просмотреть содержимое файла.
«Запись» = 2: изменить содержимое файла.
«Execute» = 1: запустить файл программы или сценарий.
8: Запретить запуск задания Cron из веб-браузера
Добавив следующую строку кода на своей странице, вы можете защитить свою страницу для доступа через веб-браузер.
if( ! $this->input->is_cli_request() ) {
die("Only CLI Requests Allowed");
}
9: Скрыть страницы администратора, которые будут сканироваться Google
Вы не хотите, чтобы поисковые страницы индексировали поисковые системы, поэтому вы должны использовать файл robots_txt, чтобы не дать поисковым системам перечислять их.
10: отключить щелчок правой кнопкой мыши на странице, если не требуется
Отключение «щелчка правой кнопкой мыши» как способа просмотра исходного кода вашего веб-сайта с помощью элемента inspect для защиты содержимого веб-сайта для обычных пользователей.
11: используйте надежный пароль для CMS
Соблюдайте практику установки случайного пароля только с помощью специального символа.
12: сделать административный каталог сложным для угадывания
Может случиться, что хакеры могут использовать сценарии, которые сканируют все каталоги на вашем веб-сервере на предмет бесплатных имен, таких как «admin» или «login» и т. Д., И ваши важные данные могут быть утечками.
13: изменить префикс таблицы базы данных
Добавьте префикс (смесь названия проекта и года), который трудно предположить для защищенной стороны.
Для иллюстрации
А) Верховный BPM => bpm14_download
B) Glickin => gk15_admin
C) TravelWorthy => tw16_user
14: Запретите пароль пользователя, это так же важно, как ваш
Относительно алгоритма шифрования паролей, используйте алгоритм sha1 вместо традиционного алгоритма Md5, который является очень старым способом и становится менее безопасным в настоящее время по источникам.
Справка: http://php.net/manual/en/function.sha1.php
15: скрыть журнал ошибок
В режиме разработки сохраняйте сообщение об ошибке «ВСЕ», и, как только мы перейдем в прямом эфире, измените его на «0», не забывая. Здесь
Справка: http://php.net/manual/en/function.error-reporting.php