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

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 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
versiyon: 4.0