Barındırılan sayfaların ve ön yüz API'sinin web güvenliği
Barındırılan giriş, hesap portalı, e-posta sayfaları (doğrulama, parola sıfırlama, davet) ve bunların çağırdığı tarayıcı API'si her pakette sabit bir web güvenliği temel çizgisini izler. Bu korumalar kapatabileceğiniz ayarlar değildir. Kontrol ettiğiniz tek ayar, hangi web kaynaklarının OAuth uç noktalarını tarayıcıdan çağırabileceğidir.
Siteler arası istek sahteciliği (CSRF)
Durumu değiştiren istekler, hiçbir şey okunmadan veya değiştirilmeden önce denetlenir:
- Kaynak denetimi. Barındırılan giriş API'sine veya bir doğrulama ya da sıfırlama sayfasına yapılan durum değiştiren bir istek, tam olarak ortamın giriş ana makinesi olan bir
Originbaşlığı taşımalıdır. Diğer tüm kaynaklarorigin_not_allowedile reddedilir. - Onay ekranı. Onay ekranındaki bir form gönderimi,
Originsayfanın kendi ana makinesi değilse veyaSec-Fetch-Sitemevcut vesame-origindeğilse reddedilir. - Form belirteçleri. Her giriş işlemi ve her e-posta formu, ortama özgü bir anahtardan HMAC-SHA256 ile türetilmiş kendi CSRF belirtecine sahiptir. Giriş API'si bunu
Idp-Csrf-Tokenbaşlığında bekler; bir formun belirteci başka bir formda çalışmaz. Belirteçler sabit sürede karşılaştırılır. - Çerezler. Giriş durumunu taşıyan çerezler
SameSite=Laxkullanır (aşağıya bakın), bu yüzden başka bir siteden başlatılan bir istek bunları göndermez.
Siteler arası istekler (CORS)
CORS yalnızca tarayıcı uygulamasının çağırdığı OAuth uç noktalarında yanıtlanır: belirteç, iptal, itilmiş yetkilendirme isteği ve userinfo uç noktaları. Yalnızca herkese açık tek sayfa uygulamaları (spa türü) için geçerlidir.
- İzin verilen kaynakları uygulama bazında
allowed_web_originsile ayarlayın (https://host[:port], en fazla 20, joker karakter yok). Bkz. Uygulama oluşturun. - Bir tarayıcının ön uçuş isteği hangi uygulamanın çağırdığını belirtmez, bu yüzden ortamdaki etkin herkese açık tek sayfa uygulamalarının izin verilen kaynaklarının birleşiminden yanıtlanır. Asıl istek ise çağıran uygulamanın kaynak listesine karşı denetlenir.
- Bu uygulamanın listesi dışındaki bir kaynak
403 origin_not_allowedile reddedilir veAccess-Control-Allow-Originbaşlığı almaz. - İzin verilen bir kaynak tam olarak geri yansıtılır.
*venullhiçbir zaman gönderilmez,Access-Control-Allow-Credentialshiçbir zaman gönderilmez ve her siteler arası yanıtVary: Origintaşır. - Giriş ana makinesinin kendisinden gelen istekler siteler arası değildir ve etkilenmez.
Girişten sonra yönlendirmeler
Next.js SDK'sını kullanıyorsanız returnTo uygulamanızın kendi yolu olmalıdır. Tam bir URL veya //evil.example gibi bir değer yok sayılır ve kullanıcı / sayfasına iner. Bkz. Next.js SDK.
Güvenlik başlıkları
Barındırılan sayfalar her yanıtta bu başlıkları ayarlar:
| Başlık | Değer |
|---|---|
Content-Security-Policy |
default-src 'none'; betikler yalnızca her yanıta özgü taze bir nonce ile; style-src 'self'; connect-src 'self'; frame-ancestors 'none'; base-uri 'none'; object-src 'none'; upgrade-insecure-requests; betikler için Trusted Types gerekli |
Reporting-Endpoints ve report-to |
Politika ihlalleri aynı ana makinedeki /u/csp-report adresine bildirilir |
X-Frame-Options |
DENY: barındırılan sayfalar bir çerçeve içine gömülemez |
X-Content-Type-Options |
nosniff |
Referrer-Policy |
no-referrer |
Cross-Origin-Opener-Policy |
same-origin |
Permissions-Policy |
Kamera, mikrofon, konum, ödeme, USB, seri, HID ve Bluetooth kapalıdır; passkey istekleri sayfanın kendisi için izinlidir |
Cache-Control |
no-store |
Politika satır içi betiklere ve unsafe- anahtar sözcüklerine izin vermez. Form gönderimleri sayfanın kendi ana makinesiyle sınırlıdır; onay ekranında politika ayrıca isteyen uygulamanın yönlendirme adresine de izin verir, böylece karar ona geri dönebilir.
Bildirim uç noktası yalnızca en fazla 8 KiB boyutundaki tarayıcı ihlal raporlarını kabul eder ve IP adresi başına hız sınırlıdır. Raporlar yönergeye göre sayılır. Kaydedildiklerinde sorgu dizgisi, parça veya kullanıcı bilgisi taşımazlar.
Strict-Transport-Security
keenauth.appüzerindeki ortam ana makinelerimax-age=63072000; includeSubDomainsgönderir.- Bir özel alan adı yalnızca
max-age=63072000gönderir,includeSubDomainsgöndermez. KeenAuth alan adınızın diğer alt alan adları hakkında karar veremez, bu seçim size aittir.
Çerezler
Giriş durumu çerezleri __Host- önekiyle adlandırılır; bu sayede tarayıcı bunları yalnızca HTTPS üzerinden, Path=/ ile ve Domain özniteliği olmadan kabul eder. Kardeş alt alan adlarından ayarlanamazlar.
| Çerez | Bayraklar | Amaç |
|---|---|---|
__Host-idp_session |
Secure, HttpOnly, SameSite=Lax |
Kullanıcının oturumu. Ömrü, oturumun mutlak sona erme süresinde biter |
__Host-idp_device |
Secure, HttpOnly, SameSite=Lax |
Cihaz tanıma |
__Host-idp_ltx ve __Host-idp_azr_* |
Secure, HttpOnly, SameSite=Lax |
Bir giriş veya yetkilendirme girişimini, onu başlatan tarayıcıya bağlar |
__Host-idp_fed_bind |
Secure, HttpOnly, SameSite=None |
Kurumsal SAML girişi için kısa ömürlü bağlama. Kimlik sağlayıcı başka bir siteden geri gönderir, bu yüzden Lax onu düşürürdü |
Çerez değerleri sayfa betikleri tarafından okunamaz (HttpOnly).