Kun selain lähettää pyynnön paikalliselle palvelimelle, se liittää ylimääräisiä otsikoita, kuten isäntä- ja alkuperäotsikot, tarjotakseen lisätietoja palvelimelle. Näillä otsikoilla on ratkaiseva rooli verkkosovellusten turvallisuuden ja asianmukaisen toiminnan varmistamisessa. Tässä vastauksessa tutkimme, kuinka selain liittää nämä otsikot ja keskustelemme niiden merkityksestä paikallisen HTTP-palvelimen suojauksen yhteydessä.
Isäntäotsikko on HTTP-pyynnön olennainen osa, ja sitä käytetään määrittämään kohdeisäntä, jolle pyyntö lähetetään. Tehdessään pyynnön paikalliselle palvelimelle selain sisältää isäntäotsikon, joka osoittaa sen palvelimen isäntänimen tai IP-osoitteen, jonka kanssa se haluaa olla yhteydessä. Tämän avulla palvelin voi tunnistaa pyynnön aiotun määränpään. Jos selain esimerkiksi haluaa käyttää verkkosivua, jota isännöidään paikallisella palvelimella, jonka IP-osoite on 192.168.0.1, se sisältää isäntäotsikon seuraavasti: "Host: 192.168.0.1". Palvelin sitten käyttää näitä tietoja reitittääkseen pyynnön sopivaan resurssiin.
Alkuperäotsikko puolestaan on nykyaikaisten selaimien toteuttama suojausmekanismi, joka suojaa eri alkuperähyökkäyksiä vastaan. Se määrittää alkuperän, josta pyyntö tehdään, mukaan lukien protokolla, isäntänimi ja portin numero. Selain sisällyttää automaattisesti alkuperäotsikon paikallisille palvelimille lähetettäviin pyyntöihin varmistaakseen, että palvelin voi tarkistaa pyynnön lähteen. Jos esimerkiksi www-sivu, jota isännöidään osoitteessa "http://localhost:8080", tekee pyynnön paikalliselle palvelimelle osoitteessa "http://localhost:3000", selain sisällyttää alkuperäotsikon seuraavasti: "Alkuperä: http ://localhost:8080". Tämän avulla palvelin voi vahvistaa, että pyyntö on peräisin odotetusta lähteestä, ja auttaa estämään luvattoman pääsyn arkaluonteisiin resursseihin.
Isäntä- ja alkuperäotsikoiden lisäksi selaimet voivat liittää muita otsikoita tehdessään pyyntöjä paikallisille palvelimille. Esimerkiksi user-agent-otsikko antaa tietoja asiakassovelluksesta (eli selaimesta), joka tekee pyynnön. Tämä otsikko auttaa palvelinta ymmärtämään asiakkaan ominaisuudet ja rajoitukset, jolloin se voi tarjota asianmukaisia vastauksia.
On tärkeää huomata, että vaikka selaimet liittävät nämä otsikot oletuksena, niitä voidaan myös muokata tai poistaa eri tavoin. Tämä voidaan tehdä selainlaajennusten, välityspalvelinten kautta tai suoraan käsittelemällä pyyntöä ohjelmointitekniikoiden avulla. Siksi on erittäin tärkeää, että palvelimen järjestelmänvalvojat ottavat käyttöön asianmukaiset suojaustoimenpiteet saapuvien pyyntöjen vahvistamiseksi ja puhdistamiseksi näiden otsikoiden olemassaolosta riippumatta.
Kun selain lähettää pyynnön paikalliselle palvelimelle, se liittää ylimääräisiä otsikoita, kuten isäntä- ja alkuperäotsikot. Isäntäotsikko määrittää pyynnön kohdeisännän, kun taas alkuperäotsikko auttaa suojaamaan lähteiden välisiltä hyökkäyksiltä. Näillä otsikoilla on tärkeä rooli verkkosovellusten turvallisuuden ja asianmukaisen toiminnan varmistamisessa. Palvelimen järjestelmänvalvojien tulee olla tietoisia näistä otsikoista ja ottaa käyttöön asianmukaiset suojatoimenpiteet saapuvien pyyntöjen vahvistamiseksi ja puhdistamiseksi.
Muita viimeaikaisia kysymyksiä ja vastauksia liittyen EITC/IS/WASF Web Applications Security Fundamentals:
- Mitä ovat metatietopyyntöotsikot ja miten niitä voidaan käyttää erottamaan saman alkuperän ja sivustojen väliset pyynnöt?
- Kuinka luotetut tyypit vähentävät verkkosovellusten hyökkäyspintaa ja yksinkertaistavat tietoturvatarkastuksia?
- Mikä on oletuskäytännön tarkoitus luotetuissa tyypeissä ja miten sitä voidaan käyttää tunnistamaan turvattomat merkkijonomääritykset?
- Miten luotettujen tyyppien objekti luodaan luotettujen tyyppien API:n avulla?
- Miten sisällön suojauskäytännön luotettujen tyyppien direktiivi auttaa vähentämään DOM-pohjaisia cross-site scripting (XSS) -haavoittuvuuksia?
- Mitä ovat luotetut tyypit ja miten ne korjaavat verkkosovellusten DOM-pohjaisia XSS-haavoittuvuuksia?
- Kuinka sisällön suojauskäytäntö (CSP) voi auttaa vähentämään sivustojen välisen komentosarjan (XSS) haavoittuvuuksia?
- Mikä on cross-site request forgery (CSRF) ja kuinka hyökkääjät voivat hyödyntää sitä?
- Miten verkkosovelluksen XSS-haavoittuvuus vaarantaa käyttäjätiedot?
- Mitkä ovat verkkosovellusten haavoittuvuuksien kaksi pääluokkaa?