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;