В предыдущей статье мы завершили установку базы данных, для тех, кто не знает.
Как установить LAMP Stack - MySQL 4/5 на Azure Linux VM
Далее мы покажем вам, как использовать шифрование с помощью SSL-сертификата для защиты ваших переводов.
Мы рекомендуем использовать Let's Encrypt для шифрования и автоматического обновления сертификатов
Как защитить Apache с помощью Let's Encrypt на Ubuntu 18.04 | DigitalOcean
Поскольку мы приобрели собственный сертификат, мы покажем, как настроить Apache вручную.
Обычно я устанавливаю пакет openssl.
sudo apt-get install openssl
Включите модуль Apache SSL
sudo a2enmod ssl
Создайте папку для сертификата и ключа
sudo mkdir /etc/apache2/ssl
Загрузите следующие файлы в папку
Если сертификат реле не установлен, вы получите ошибку при использовании таких команд, как curl.
Редактирование файла конфигурации сайта
sudo vi /etc/apache2/sites-available/your_site.conf
Мы используем постоянное перенаправление для перенаправления HTTP на HTTPS
<VirtualHost *:80> ServerAdmin webmaster@localhost ServerName your_site.your_domain Redirect permanent / https://your_site.your_domain/ </VirtualHost> <VirtualHost *:443> ServerAdmin webmaster@localhost ServerName your_site.your_domain DocumentRoot /var/www/your_site <Directory /var/www/your_site> AllowOverride All Order allow,deny allow from all </Directory> ErrorLog ${APACHE_LOG_DIR}/your_site-error.log CustomLog ${APACHE_LOG_DIR}/your_site-access.log combined SSLEngine On SSLCertificateFile /etc/apache2/ssl/your_certificate SSLCertificateKeyFile /etc/apache2/ssl/your_key SSLCertificateChainFile /etc/apache2/ssl/your_ca_bundle </VirtualHost>
Вы можете проверить правильность конфигурационного файла с помощью этой команды
sudo apache2ctl configtest Syntax OK
Не забудьте перезапустить сервер Apache, чтобы все заработало
sudo systemctl restart apache2
Вы можете проверить ошибки конфигурации сертификата с помощью What's My Chain Cert
Какой у меня сертификат цепи?
sudo vi /etc/apache2/apache2.conf
Добавьте следующее в конец файла
# Do not allow .git version control files to be issued <DirectoryMatch "^/.*/\.git/"> Order deny,allow Deny from all </DirectoryMatch> # Optionally add a line containing the server version and virtual host # name to server-generated pages (internal error documents, FTP directory # listings, mod_status and mod_info output etc., but not CGI generated # documents or custom error documents). ServerSignature Off # ServerTokens # This directive configures what you return as the Server HTTP response # Header. The default is 'Full' which sends information about the OS-Type # and compiled in modules. # Set to one of: Full | OS | Minimal | Minor | Major | Prod # where Full conveys the most information, and Prod the least. ServerTokens Prod # Use memory-mapping to read files during delivery # This memory-mapping sometimes yields a performance improvement. # But in some environments, it is better to disable the memory-mapping # to prevent operational problems EnableMMAP Off # Use the kernel sendfile support to deliver files to the client # This sendfile mechanism avoids separate read and send operations, # and buffer allocations. But on some platforms or within some filesystems, # it is better to disable this feature to avoid operational problems EnableSendfile Off
ServerSignature Off Предотвращает раскрытие версии ОС и Apache для атак хакеров.
EnableMMAP Off
EnableSendfile Off
Не забудьте перезапустить сервер Apache, чтобы все заработало
sudo systemctl restart apache2
Включите модуль заголовков Apache
sudo a2enmod headers
Редактирование или добавление .htaccess
sudo vi /var/www/your_site/.htaccess
Установите .htaccess так, чтобы он вступал в силу без перезапуска сервера Apache
Добавьте следующее
<IfModule mod_speling.c> CheckCaseOnly on CheckSpelling on </IfModule> <IfModule mod_headers.c> Header edit Set-Cookie ^(.*)$ $1;HttpOnly;Secure Header always unset "X-Powered-By" Header unset "X-Powered-By" Header always set Strict-Transport-Security "max-age=31536000; includeSubDomains" Header set Content-Security-Policy " \ default-src 'self'; \ script-src 'unsafe-inline' *.your_doamin; \ " Header set Referrer-Policy "no-referrer-when-downgrade" Header set X-Frame-Options "sameorigin" Header set X-Content-Type-Options "nosniff" Header set X-XSS-Protection "1; mode=block" </IfModule>
Используется для того, чтобы заставить браузеры использовать HTTPS для подключения к веб-сайтам вместо HTTP.
Использование CSP может усложнить атаки и предотвратить многие распространенные XSS-атаки, а также является крайне рекомендуемым HTTP-заголовком.
Объявляет набор доверенных белых списков и типов ресурсов (например, JavaScript, CSS, изображения и т.д.), так что браузеры могут загружать ресурсы только из этого белого списка, тем самым предотвращая возможность злоумышленников принести извне ресурсы, содержащие вредоносный код.
"no-referrer-when-downgrade" будет регистрироваться только при переходе с HTTPS на HTTPS.
Проще говоря, это запись о последнем посещенном вами месте, которую можно использовать для повышения конфиденциальности.
"sameorigin" позволяет сайтам с одинаковым происхождением быть встроенными в iframe.
Это используется для того, чтобы гарантировать, что ваш контент не будет злонамеренно внедрен на другие веб-сайты, и избежать атак типа clickjacking.
Предотвращает фальсификацию Content-Type и не позволяет браузерам неверно интерпретировать форму файлов.
Обратите внимание, что этот атрибут применяется только к сценарию и стилю.
"1; mode=block" Включает фильтрацию XSS, чтобы браузер не отображал страницу, если обнаружит XSS-атаку.
Он может быть в значительной степени заменен Content-Security-Policy (CSP), но обеспечивает уровень защиты для браузеров, которые не поддерживают CSP.
Мы можем проверить веб-сайты на наличие вредоносных данных и файлов с помощью сайта проверки Google
Отчет о прозрачности Google
Введите URL-адрес для проверки
Мы можем использовать лаборатории SSL, предоставляемые Qualys, для проверки сертификата
Тест сервера SSL
Введите URL-адрес для проверки
Рекомендуется оценка не ниже B, а если возникнут проблемы, вы можете следовать подсказкам для внесения корректировок.
Для более продвинутого тестирования веб-безопасности, пожалуйста, обратитесь к моей предыдущей статье
Тест веб-безопасности Burp Suite
Спасибо, что дошли до конца этой статьи, надеюсь, она вам помогла.
26.01.2023 14:14
Как привнести проверку типов в наши шаблоны Angular, использующие компоненты библиотеки PrimeNg, и настроить их отображение с помощью встроенной функции ngTemplateOutlet.
26.01.2023 13:19
Если вы веб-разработчик (или хотите им стать), то вы наверняка гик и вам нравятся "Звездные войны". А как бы вы хотели, чтобы фоном для вашего следующего сайта послужил начальный эпизод "Звездных войн"? 😁
26.01.2023 09:43
В предыдущей статье мы уже узнали, как создать Rest API с помощью Springboot и MySql .
25.01.2023 11:01
Pink Design - это система дизайна Appwrite с открытым исходным кодом для создания последовательных и многократно используемых пользовательских интерфейсов.
25.01.2023 10:51
API-шлюз (AG) - это сервер, который действует как единая точка входа для набора микросервисов.
25.01.2023 09:17
проверить тип данных используемой переменной, мы можем просто написать: your_variable=100