Як додати Security header на nginx?

Neron

Neron

Пользователи
Реєстрація
12.04.2014
Повідомлення
374
Репутація
24
Вік
32
Мені потрібно додати заголовки Security Header: Content-Security-Policy, X-Content-Type-Options, Referrer-Policy, Permissions-Policy на сервері nginx, щоб проходити валідацію на сайті: securityheaders.com
Як це зробити?
 
Ви можете додати ці Security Headers у ваш файл конфігурації Nginx, де вказані директиви для вашого сервера або локації.

Ось приклад того, як ви можете додати ці заголовки:

1. Відкрийте свій файл конфігурації Nginx. Зазвичай він знаходиться в `/etc/nginx/nginx.conf` або в `/etc/nginx/sites-available/default`.

2. Знайдіть блок `server` або блок `location`, в залежності від того, де ви хочете застосувати заголовки. Він може виглядати приблизно так:
```
server {
listen 80 default_server;
listen [::]:80 default_server;

...
}
```

3. В цьому блоку, додайте такі строки для потрібних вам заголовків:
```
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer" always;
add_header Permissions-Policy "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()" always;
```

Примітка: Не забудьте замінити налаштування "Content-Security-Policy" та "Permissions-Policy" своїми власними налаштуваннями в залежності від вашої конкретної потреби.

4. Після додавання заголовків, збережіть файл і закрийте його.

5. Перезавантажте або перезапустіть ваш nginx, щоб застосувати зміни. Можна використати одну з наступних команд:
```
sudo systemctl reload nginx
```
або
```
sudo systemctl restart nginx
```

6. Перевірте валідацію вашого веб-сайту на сайті securityheaders.com знову.

Я сподіваюся, ця інформація допомагає вам зрозуміти, як додавати безпекові заголовки на сервер nginx.
 
Ви можете додати ці Security Headers у ваш файл конфігурації Nginx, де вказані директиви для вашого сервера або локації.

Ось приклад того, як ви можете додати ці заголовки:

1. Відкрийте свій файл конфігурації Nginx. Зазвичай він знаходиться в `/etc/nginx/nginx.conf` або в `/etc/nginx/sites-available/default`.

2. Знайдіть блок `server` або блок `location`, в залежності від того, де ви хочете застосувати заголовки. Він може виглядати приблизно так:
```
server {
listen 80 default_server;
listen [::]:80 default_server;

...
}
```

3. В цьому блоку, додайте такі строки для потрібних вам заголовків:
```
add_header Content-Security-Policy "default-src 'self' http: https: data: blob: 'unsafe-inline'" always;
add_header X-Content-Type-Options "nosniff" always;
add_header Referrer-Policy "no-referrer" always;
add_header Permissions-Policy "accelerometer=(), camera=(), geolocation=(), gyroscope=(), magnetometer=(), microphone=(), payment=(), usb=()" always;
```

Примітка: Не забудьте замінити налаштування "Content-Security-Policy" та "Permissions-Policy" своїми власними налаштуваннями в залежності від вашої конкретної потреби.

4. Після додавання заголовків, збережіть файл і закрийте його.

5. Перезавантажте або перезапустіть ваш nginx, щоб застосувати зміни. Можна використати одну з наступних команд:
```
sudo systemctl reload nginx
```
або
```
sudo systemctl restart nginx
```

6. Перевірте валідацію вашого веб-сайту на сайті securityheaders.com знову.

Я сподіваюся, ця інформація допомагає вам зрозуміти, як додавати безпекові заголовки на сервер nginx.
Я це застосував, але отримав попередження:
Content-Security-Policy This policy contains 'unsafe-inline' which is dangerous in the default-src directive.
 
Я це застосував, але отримав попередження:
Content-Security-Policy This policy contains 'unsafe-inline' which is dangerous in the default-src directive.
'unsafe-inline' в директиві Content-Security-Policy дозволяє виконання вбудованих скриптів та стилів, що може представляти певну безпеку. Тому безпекові аналізатори, як-от securityheaders.com, видадуть попередження для таких налаштувань.

Якщо ви хочете запобігти виконанню вбудованих скриптів та стилів, ви можете видалити 'unsafe-inline' з вашої директиви Content-Security-Policy. Ось як це може виглядати:

```add_header Content-Security-Policy "default-src 'self' http: https: data: blob:" always;```

Проте, будь ласка, зверніть увагу, що це може порушити деякі аспекти вашого сайту, якщо він залежить від вбудованих скриптів або стилів. Вам також можуть знадобитися додаткові директиви щодо скриптів та стилів для прикладу:

```add_header Content-Security-Policy "default-src 'self'; script-src 'self'; style-src 'self';" always;```

Це дозволить скрипти та стилі лише від того ж джерела (self). Ви можете замінити 'self' іншими джерелами, залежно від того, звідки ви хочете дозволити скрипти та стилі.

Пам'ятайте, що після внесення змін в конфігурацію Nginx, вам потрібно буде перезавантажити або перезапустити сервер Nginx за допомогою однієї з команд:

```sudo systemctl reload nginx```

або

```sudo systemctl restart nginx```
 
Назад
Зверху