Document (rozszerzenie)#
document.domain#
Właściwość domain zwraca nazwę domeny serwera w postaci tekstowej, z którego wczytano dany dokument. Jeśli nie można ustalić nazwy domeny zwrócona zostanie wartość null.
Zazwyczaj polecenie stosuje się w celu kontroli bezpieczeństwa. Właściwość może być ustawiana na wartość usuwającą subdomeny, tak aby zmieniać efektywne pochodzenie skryptowe (effective script origin), zezwalając stronom na innych subdomenach w tej samej domenie (jeśli robią te same rzeczy), aby uzyskały dostęp do siebie.
Prosty przykład:
<script>
document.write(document.domain); // www.crimsteam.site90.net
</script>Domena w obiekcie document jest częścią hosta pochodzenia dokumentu, jeśli wartością tego pochodzenia jest sekwencja (tuple) scheme/host/port. Jeśli tak nie jest dokument nie posiada domeny i wartością będzie pusty łańcuch.
Właściwość domain jest używana do włączenia wzajemnego dostępu do DOM na stronach, które mają różne hosty w domenie. W celu zapewnienia odpowiedniego bezpieczeństwa, właściwość domain może być ustawiona jedynie na domenę bieżącą lub na domenę wyższego rzędu (higher-level). Dla przykładu, subdomena mail.example.com jest częścią domeny example.com, to też wartość dla właściwości domain może zostać zmieniona z mail.example.com na example.com. Najlepiej przeanalizować materiał z MDN - Same-origin policy.
Nie należy stosować właściwości domain w przypadku dzielonego hostingu. Jeśli niezaufany kod (osób trzecich) jest udostępniany na serwerze HTTP pod tym samym adresem IP ale na innym porcie, wówczas ochrona tego smego pochodzenia (same-origin protection), która normalnie zabezpiecza dwie różne strony na tym samym hoście, zawiedzie, ponieważ porty są ignorowane przy porównywaniu pochodzenia, kiedy polecenie document.domain zostało użyte.
Interfejs Web IDL#
attribute DOMString domain;