Un script exécuté dans une page web n'a aucun réglage général qui modifie le proxy sortant du navigateur. Une extension du navigateur peut disposer de permissions supplémentaires, mais elle fonctionne selon un modèle de sécurité et de configuration différent.

Cette distinction se perd dans les vieilles réponses de forums. Le code qui utilise des rouages internes privilégiés de Firefox, d'anciens modules d'extension ou des SDK d'add-on abandonnés n'a jamais été une API ordinaire de page web. Coller un tel extrait dans une page ne confère pas ces privilèges.

Utilisez l'API d'extensions du navigateur

Une extension Firefox peut utiliser l'API proxy.settings documentée avec les permissions requises. Chrome expose sa propre API d'extensions pour le proxy. Leurs modèles de configuration diffèrent ; vérifiez les exigences du manifeste et les réglages pris en charge pour le navigateur visé.

Une extension doit aussi tenir compte des politiques ou d'autres extensions qui contrôlent le même réglage. Un appel d'API réussi ne justifie pas de supposer que chaque destination suit désormais la route prévue. Inspectez la configuration obtenue et préservez la possibilité pour l'utilisateur de la restaurer.

Changer l'URL d'une requête change la destination

Une page web peut appeler un serveur d'application qui transmet une requête en son nom, selon les règles web du navigateur. Dans ce modèle, le navigateur se connecte à ce serveur d'application. Il n'a pas installé de proxy général ni changé la route des onglets sans rapport.

De même, envoyer un en-tête avec une autre adresse IP ne change pas l'adresse source de la connexion. Une destination peut interpréter des métadonnées de transfert de confiance selon sa propre politique, mais le chemin réseau est un fait distinct.

Si votre but est un proxy qui change l'IP pour naviguer, choisissez une entrée adaptée de la liste de proxys gratuits et configurez un proxy de navigateur pris en charge ou une extension autorisée. Si le but est la requête distante d'une application web, concevez cette fonction autour de ses limites réelles de serveur et de navigateur.

Articles similaires