Apache'de HTTP Güvenlik Başlıklarını Ekleme | ||||||||||||||||
(+) Bu yazı birebir denenmiştir ve başarıyla uygulanmıştır. Belli başlı http güvenlik başlıkları vardır. Bunlar arasında
gibi header'lar mevcuttur. Bu http güvenlik başlıklarının http response'da yer alabilmesi için önce bir apache modülü olan mod_headers'ın enable edilmesi gerekmektedir. sudo a2enmod headers sudo service apache2 restart Ardından apache'nin konfigurasyon dosyasına aşağıdaki satırlar eklenmelidir. sudo gedit /etc/apache2/apache2.conf Header add Content-Security-Policy "style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; img-src *; connect-src: *; frame-src: *; object-src: *" Header set X-XSS-Protection "1; mode=block" Header set X-Frame-Options "SAMEORIGIN" Header set X-Content-Type-Options "nosniff" Header set Referrer-Policy "no-referrer" Header edit Set-Cookie ^(.*)$ "$1; HttpOnly; Secure; SameSite=strict" // Mevcut cookie'ye bayrakları ilave eder. Header set Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" Böylece http response paketlerinde yukarıdaki header'lar yer alacaktır ve istemci taraflı güvenlik sağlanmış olacaktır. Uygulama Ubuntu 14.04 ana makinasındaki localhost'a telnet yapalım ve varsayılan header'ları bir görüntüleyelim. telnet localhost 80 HEAD / HTTP/1.0 HTTP/1.1 200 OK Date: Wed, 09 Aug 2017 06:53:19 GMT Server: Apache/2.4.7 (Ubuntu) Connection: close Content-Type: text/html;charset=UTF-8 Connection closed by foreign host. Şimdi sistemimizdeki apache'yi yapılandıralım ve http güvenlik başlıklarını ekleyelim. sudo gedit /etc/apache2/apache2.conf Eklenecek Satırlar: Header add Content-Security-Policy "style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; img-src *; connect-src: *; frame-src: *; object-src: *" Header set X-XSS-Protection "1; mode=block" Header set X-Frame-Options "SAMEORIGIN" Header set X-Content-Type-Options "nosniff" Header set Referrer-Policy "no-referrer" Header edit Set-Cookie ^(.*)$ "$1; HttpOnly; Secure; SameSite=strict" Header set Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" Ardından dosyayı kaydedip apache'yi restart'layalım. service apache2 restart Böylece localhost'a telnet yaptığımızda dönen http response'da http güvenlik başlıkları da gelecektir. telnet localhost 80 HEAD / HTTP/1.0 HTTP/1.1 200 OK Date: Mon, 14 Aug 2017 12:37:07 GMT Server: Apache/2.4.7 (Ubuntu) X-Content-Type-Options: nosniff Header add Content-Security-Policy "style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; img-src *; connect-src: *; frame-src: *; object-src: *" X-XSS-Protection: 1; mode=block X-Frame-Options: SAMEORIGIN Referrer-Policy: no-referrer Set-Cookie: MoodleSession=nk7qifj0q9i7; HttpOnly; Secure; SameSite=strict Strict-Transport-Security: max-age=31536000; includeSubdomains; preload Connection: close Content-Type: text/html;charset=UTF-8 Connection closed by foreign host. Not: Localhost'ta çerez kullanan bir uygulama varlığı olmadığından Set-Cookie header'ı bu senaryoda görünmeyecektir. Uyarı Eğer uygulama 404 gibi hata mesajları döndüğünde de güvenlik başlıkları http response'larda yer alsın istiyorsan apache2.conf dosyasına eklediğin satırlara aşağıdaki gibi always keyword'ü eklemelisin. sudo gedit /etc/apache2/apache2.conf Eklenecek Satırlar: Header always add Content-Security-Policy "style-src * 'unsafe-inline'; script-src * 'unsafe-inline' 'unsafe-eval'; img-src * data: 'unsafe-inline'" Header always set X-XSS-Protection "1; mode=block" Header always set X-Frame-Options "SAMEORIGIN" Header always set X-Content-Type-Options "nosniff" Header always set Referrer-Policy "no-referrer" Header always set Strict-Transport-Security "max-age=31536000; includeSubdomains; preload" Not: Konfigasyon dosyasında always olmadığında telnet ile HEAD / HTTP/1.0 talebi sonrası http güvenlik başlıkları gelmişken HEAD / HTTP/1.1 talebi sonrası hata döndüğünden http talepleri gelmemiştir. Konfigurasyon dosyasına always keyword'leri eklendiğinde ise telnet ile hem HEAD / HTTP/1.0 talebi yaptığımızda hem de HEAD / HTTP/1.1 talebi yaptğımızda http güvenlik başlıkları gelmiştir. Yararlanılan Kaynaklar
|
||||||||||||||||
![]() |
||||||||||||||||
|
||||||||||||||||
Yorumlar |
||||||||||||||||
Henüz yorum girilmemiştir. | ||||||||||||||||
Yorum Ekle | ||||||||||||||||