HTTP'yi Yapılandırma
Nette HTTP için yapılandırma seçeneklerine genel bakış.
Tüm çerçeveyi değil, yalnızca bu kütüphaneyi kullanıyorsanız, yapılandırmayı nasıl yükleyeceğinizi okuyun.
HTTP Üstbilgileri
http:
# her istekle birlikte gönderilen başlıklar
headers:
X-Powered-By: MyCMS
X-Content-Type-Options: nosniff
X-XSS-Protection: '1; mode=block'
# X-Frame-Options başlığını etkiler
frames: ... # (string|bool) varsayılan olarak 'SAMEORIGIN'
Güvenlik nedeniyle, çerçeve bir sayfanın başka bir sayfanın içinde görüntülenebileceğini belirten bir
X-Frame-Options: SAMEORIGIN
başlığı gönderir (öğe <iframe>
) yalnızca aynı etki
alanındaysa. Bu bazı durumlarda istenmeyen bir durum olabilir (örneğin, bir Facebook uygulaması geliştiriyorsanız), bu
nedenle davranış frames: http://allowed-host.com
.
İçerik Güvenliği Politikası
Başlıklar Content-Security-Policy
(bundan sonra CSP olarak anılacaktır) kolayca bir araya getirilebilir,
açıklamaları CSP açıklam asında bulunabilir. CSP direktifleri (
script-src
gibi) spesifikasyona göre dizeler olarak ya da daha iyi okunabilirlik için değer dizileri olarak
yazılabilir. Bu durumda 'self'
gibi anahtar kelimelerin etrafına tırnak işareti koymaya gerek yoktur. Nette
ayrıca otomatik olarak nonce
değerini üretecektir, böylece 'nonce-y4PopTLM=='
başlıkta
gönderilecektir.
http:
# İçerik Güvenliği Politikası
csp:
# CSP spesifikasyonuna göre dize
default-src: "'self' https://example.com"
# değerler dizisi
script-src:
- nonce
- strict-dynamic
- self
- https://example.com
# anahtarlar durumunda bool
upgrade-insecure-requests: true
block-all-mixed-content: false
Kullanım <script n:nonce>...</script>
ve nonce değeri otomatik olarak doldurulacaktır. Nette'de
güvenli web siteleri yapmak gerçekten çok kolay.
Benzer şekilde, Content-Security-Policy-Report-Only
(CSP ile paralel olarak kullanılabilir) ve Özellik Politikası başlıkları da eklenebilir:
http:
# Yalnızca İçerik Güvenliği Politikası Raporu
cspReportOnly:
default-src: self
report-uri: 'https://my-report-uri-endpoint'
# Özellik Politikası
featurePolicy:
unsized-media: none
geolocation:
- self
- https://example.com
HTTP Çerezi
Nette\Http\Response::setCookie() ve session yöntemlerinin bazı parametrelerinin varsayılan değerlerini değiştirebilirsiniz.
http:
# yola göre çerez kapsamı
cookiePath: ... # (string) varsayılan olarak '/'
# hangi ana bilgisayarların çerezi almasına izin verilir
cookieDomain: 'example.com' # (string|domain) varsayılan olarak unset
# çerezleri yalnızca HTTPS üzerinden göndermek için?
cookieSecure: ... # (bool|auto) varsayılan olarak auto
# Nette'in CSRF'ye karşı koruma olarak kullandığı çerezin gönderilmesini devre dışı bırakır
disableNetteCookie: ... # (bool) varsayılan değer false
cookieDomain
seçeneği hangi etki alanlarının (kökenlerin) çerezleri kabul edebileceğini belirler.
Belirtilmezse, çerez, alt alan adları hariç tutularak *aynı (alt) alan adı tarafından kabul edilir. Eğer
cookieDomain
belirtilirse, alt alan adları da dahil edilir. Bu nedenle, cookieDomain
belirtmek,
belirtmemekten daha az kısıtlayıcıdır.
Örneğin, cookieDomain: nette.org
ayarlanırsa, çerez doc.nette.org
gibi tüm alt alan adlarında
da kullanılabilir. Bu, domain
yani cookieDomain: domain
özel değeri ile de elde edilebilir.
cookieSecure
'un varsayılan değeri auto
'dir, bu da web sitesi HTTPS üzerinde çalışıyorsa
çerezlerin Secure
bayrağıyla gönderileceği ve bu nedenle yalnızca HTTPS üzerinden kullanılabileceği
anlamına gelir.
HTTP Proxy
Site bir HTTP proxy'sinin arkasında çalışıyorsa, HTTPS bağlantılarının algılanmasının doğru çalışması için
proxy'nin IP adresini ve istemci IP adresini girin. Böylece Nette\Http\Request::getRemoteAddress( ) ve isSecured() doğru değerleri döndürür ve şablonlarda
https:
protokolü ile bağlantılar oluşturulur.
http:
# IP adresi, aralık (örn. 127.0.0.1/8) veya bu değerlerin dizisi
proxy: 127.0.0.1 # (string|string[]) varsayılan değeri none
Oturum
Temel oturum ayarları:
session:
# Tracy Bar'da oturum panelini gösterir mi?
debugger: ... # (bool) varsayılan değer false
# oturumun sona erdiği hareketsizlik süresi
expiration: 14 days # (string) varsayılan değer '3 saat'
# oturum ne zaman başlatılmalı?
autoStart: ... # (smart|always|never) varsayılan olarak 'smart'
# işleyici, SessionHandlerInterface arayüzünü uygulayan hizmet
handler: @handlerService
autoStart
seçeneği oturumun ne zaman başlatılacağını kontrol eder. always
değeri, oturumun
her zaman uygulama başladığında başlatılacağı anlamına gelir. smart
değeri, oturumun uygulama
başladığında yalnızca zaten mevcutsa veya ondan okumak ya da ona yazmak istediğimiz anda başlatılacağı anlamına gelir.
Son olarak, never
değeri oturumun otomatik olarak başlatılmasını devre dışı bırakır.
Ayrıca, tüm PHP oturum yönergelerini (camelCase biçiminde) ve ayrıca readAndClose'u da ayarlayabilirsiniz. Örnek
session:
# 'session.name' 'name' olarak yazıldı
name: MYID
# 'session.save_path', 'savePath' olarak yazılır
savePath: "%tempDir%/sessions"
Oturum Çerezi
Oturum çerezi diğer çerez lerle aynı parametrelerle gönderilir, ancak bunları onun için değiştirebilirsiniz:
session:
# hangi ana bilgisayarların çerezi almasına izin verilir
cookieDomain: 'example.com' # (string|domain)
# çapraz kökenli isteklere erişirken kısıtlamalar
cookieSamesite: ... # (Strict|Lax|None) varsayılan olarak Lax
cookieSamesite
seçeneği, çerezin Siteler Arası İstek Sahteciliği
saldırılarına karşı bir miktar koruma sağlayan çapraz
kökenli isteklerle gönderilip gönderilmeyeceğini etkiler.
DI hizmetleri
Bu hizmetler DI konteynerine eklenir:
Ad | Tür | Açıklama |
---|---|---|
http.request |
Nette\Http\Request | HTTP isteği |
http.response |
Nette\Http\Response | HTTP yanıtı |
session.session |
Nette\Http\Session | oturum yönetimi |