Chrome onAuthRequired: provjerite isProxy prije slanja akreditiva
Chromeov povratni poziv za autentifikaciju može opisati izazov proxyja ili izazov izvora. Slanje istih akreditiva objema je greška u obimu akreditiva.
Proširenje preglednika može naići na izazove autentifikacije s dva različita mjesta: proxyja koji prenosi zahtjev i odredišne web stranice. Oni ne smiju automatski dobiti isti račun.
Koristan razlikovni znak u Chromeovom događaju webRequest.onAuthRequired jest isProxy. Povratni poziv koji ukloni tu provjeru samo da bi nestao upit može početi dostavljati akreditive proxyja izazovu izvora.
Uskladite proxy kojem namjeravate vjerovati
Provjera isProxy je početak. Također ograničite obradu na očekivanog izazivača proxyja i kontekst zahtjeva. Proširenje koje upravlja s nekoliko krajnjih točaka treba odabrati račun koji pripada toj krajnjoj točki, a ne jednu globalnu lozinku za svaki izazov.
Ne pretpostavljajte da su postavljanje proxy rute i obrada njezine prijave jedno dopuštenje ili jedan API poziv. Chrome ih dokumentira odvojeno. Koristite trenutnu referencu webRequest za podatke o događajima i dopuštenja za autentifikaciju. Primjer registracije slušatelja Manifest V3 pokazuje sinkronu registraciju i odabir računa unutar povratnog poziva.
Provjerite generaciju manifesta
Primjeri koji spominju eksperimentalni WebRequest API dolaze iz starih izdanja proširenja. Trenutni zahtjevi za dopuštenjima ovise o generaciji manifesta proširenja i modelu implementacije. Posebno, obrada autentifikacije ima vlastiti podržani put dopuštenja; zastario primjer blokirajućeg slušatelja nije dovoljan da se utvrdi da proširenje Manifest V3 može to izvoditi nepromijenjeno.
Ispravan rukovatelj također mora izbjegavati beskonačno ponovno pokušavanje istih odbijenih akreditiva. Drugi izazov nakon dostavljenog računa tretirajte kao dokaz za istragu, a ne kao zahtjev da se lozinka zauvijek iznova reproducira.
Akreditivi bi trebali ostati na odgovarajućem zaštićenom putu obrade proširenja. Ne objavljujte ih u PAC datoteci i ne ugrađujte ih u distribuirani primjer. Cilj je usko ograničena proxy prijava, a ne pravilo na razini preglednika koje svakom izazovu autentifikacije odgovara istom tajnom.