Voiko JavaScript muuttaa selaimen välityspalvelinta?
Erota tavallinen verkkosivun koodi valtuutetusta selainlaajennuksesta, joka voi määrittää välityspalvelimen.
Verkkosivulla ajettavalla skriptillä ei ole yleistä asetusta, joka muuttaisi selaimen lähtevää välityspalvelinta. Selainlaajennuksella voi olla lisäoikeuksia, mutta se toimii erilaisessa tietoturva- ja kokoonpanomallissa.
Tämä ero hukkuu vanhoihin foorumivastauksiin. Koodi, joka käyttää Firefoxin etuoikeutettuja sisäosia, vanhoja laajennusmoduuleja tai hylättyjä add-on-SDK:ita, ei ollut koskaan tavallinen verkkosivun API. Tällaisen katkelman liittäminen sivulle ei anna näitä oikeuksia.
Käytä selaimen laajennus-APIa
Firefox-laajennus voi käyttää dokumentoitua proxy.settings-APIa tarvittavilla oikeuksilla. Chrome tarjoaa oman välityspalvelinlaajennuksen APIn. Niiden kokoonpanomallit eroavat; tarkista manifestin vaatimukset ja tuetut asetukset kohdeselaimellesi.
Laajennuksen tulee ottaa huomioon myös käytännöt tai muut laajennukset, jotka ohjaavat samaa asetusta. Onnistunut API-kutsu ei ole syy olettaa, että jokainen kohde noudattaa nyt aiottua reittiä. Tarkasta syntyvä kokoonpano ja säilytä käyttäjän mahdollisuus palauttaa se.
Nouto-URLin muuttaminen muuttaa kohdetta
Verkkosivu voi kutsua sovelluspalvelinta, joka välittää pyynnön sen puolesta selaimen verkosääntöjen mukaisesti. Siinä mallissa selain yhdistää kyseiseen sovelluspalvelimeen. Se ei ole asentanut yleistä selaimen välityspalvelinta eikä muuttanut muiden välilehtien käyttämää reittiä.
Samoin toisen IP-osoitteen otsakkeen lähettäminen ei muuta yhteyden lähdeosoitetta. Kohde voi tulkita luotettua välityksen metatietoa oman käytäntönsä mukaan, mutta verkkopolku on erillinen tosiasia.
Jos tavoitteesi on IP-osoitetta vaihtava välityspalvelin selaamiseen, valitse sopiva merkintä ilmaisten välityspalvelimien luettelosta ja määritä tuettu selaimen välityspalvelin tai valtuutettu laajennus. Jos tavoite on yhden verkkosovelluksen etänouto, suunnittele ominaisuus sen todellisten palvelin- ja selainrajojen mukaan.