web-dev-qa-db-fra.com

Utilisation de caractères spéciaux dans le chemin d'URL au lieu de chaînes de requête pour permettre la liaison relative dans un proxy Web

J'ai reçu des plaintes selon lesquelles les liens générés par mon logiciel ne suivent pas les spécifications d'URL du W3C. http://www.w3.org/Addressing/URL/url-spec.txt

Les liens générés ressemblent à ceci: https://organization.proxive.se/proxive/https://www.google.com/

Le logiciel est un proxy et génère les liens de cette manière afin que le proxy ne doive pas analyser les liens relatifs. Exemples: /maps/, ../relative_link.

L'utilisation d'une solution qui utilise query-string ne le permettrait pas.

Est-ce que mon utilisation de la construction de l'URL est correcte ou dois-je URL encoder tout après /proxive/?

Je peux ajouter que ma solution fonctionne dans tous les principaux navigateurs.

3
emilhem

Il semble que la seule chose que vous voudriez besoin pour vous échapper dans cette URL serait le :

https://organization.proxive.se/proxive/https%3A//www.google.com/

Dans ce cas, votre URL n'utilisera aucun caractère non autorisé et les répertoires resteront sur la sous-URL pour prendre en charge certains liens relatifs.


Je veux juste souligner que pas tous les liens relatifs fonctionneront. En général, je code mes sites avec lesquels travailler relatif site URL comme /img/logo.png Lorsqu'il est utilisé sur http://example.com/dir/page.html, l'URL relative http://example.com/img/logo.png sera récupérée.

Donc, dans votre cas, si vous tentiez de créer un proxy http://example.com/dir/page.html, vous finirez par aller chercher https://organization.proxive.se/img/logo.png

2
Stephen Ostermiller