Wie werden Sonderzeichen in Benutzername / Passwort für HTTP-Proxy verwendet?

31452
pyropenguin

Ich versuche, einen HTTP-Proxy auf einem Windows-Computer einzurichten. Das Problem ist, dass das Kennwort ein Sonderzeichen (@) enthält, das dazu führt, dass der setBefehl fehlschlägt.

Ich habe versucht, das Zeichen ( \@) zu umgehen und es mit dem Hex-Wert ( %40) in Prozent zu kodieren, ohne Erfolg.

Zum Beispiel habe ich mit dem Benutzernamen Foo und dem Kennwort B @ r die folgenden Befehle ausprobiert:

set http_proxy=http://foo:B\@r@http-gateway.domain.org:80 set http_proxy=http://foo:B%40r@http-gateway.domain.org:80 

Abgesehen vom Ändern des Passworts. Wie kann ich das Passwort vom Proxy verwenden lassen?

19
Schlägt der Satz fehl, oder schlägt das Tool, das die Umgebungsvariable http_proxy verwendet, aufgrund des @ -Symbols fehl? Mike Cornell vor 13 Jahren 0
Ja. Da das Format Benutzername: Kennwort @ Server: Port ist, bewirkt die Angabe von @ in der Mitte Ihres Kennworts, dass die rechte Seite Ihres Kennworts als Hostname betrachtet wird. Die oben angegebene Auflösung des Hostnamens schlägt daher fehl, da der Hostname der Meinung ist, r @ http gateway.domain.org. Das "r @" sollte nicht da sein. Philluminati vor 12 Jahren 0
Ich habe es mit% 40 versucht und es hat funktioniert (unter Windows). Sind Sie sicher? thegreendroid vor 12 Jahren 2
Tatsächlich funktioniert es sowohl unter Windows als auch unter Linux (Ubuntu). thegreendroid vor 12 Jahren 0
Kopieren Sie http://stackoverflow.com/questions/6172719/escape-character-in-git-proxy-password rofrol vor 9 Jahren 0

4 Antworten auf die Frage

21
ravi parekh

Sie müssen Prozent codieren | codieren Sie die Sonderzeichen. ZB stattdessen:

http://foo:B@r@http-gateway.domain.org:80 

schreibst du das:

http://foo:B%40r@http-gateway.domain.org:80 

So @wird mit ersetzt %40.

Kodierung ist in der Tat der Weg, um dieses Problem (und viele andere) zu umgehen. HTDutchy vor 11 Jahren 2
Ich fand, dass ich einige Zeichen verdoppeln musste dovidweisz vor 7 Jahren 0
Ich schlage vor, einfach javascript `encodeURIComponent ()` zu diesem Zweck zu verwenden. Sie können die `DeveloperTools -> Console` Ihres Browsers problemlos verwenden. Mir-Ismaili vor 5 Jahren 0
2
Sandeep Kumar

Verwenden Sie den% ASCII-Code des Sonderzeichens in hexadezimaler Schreibweise für jedes Sonderzeichen. Angenommen, Mein Passwort lautet AB @ 12 # und dann sollte das Passwort als festgelegt werden

git config --global http.proxy *http://usernamne:**AB%4012%23%26**@myipadress:portnumber*

In der ASCII-Tabelle finden Sie Informationen zum hexadezimalen ASCII-Code einer beliebigen Zahl.

0
Richa Goyal

Für Sonderzeichen in Benutzername oder Kennwort können wir immer UTF-8-codierte Zeichenfolgen verwenden. Zum Beispiel: ! kann durch% 21 ersetzt werden

Der Befehl wäre also, wenn das Passwort abc ist !:

npm config set proxy http: // benutzer: abc%21@proxy.world.com: 8080 /

npm config set https-proxy http: // benutzer: abc%21@proxy.world.com: 8080 /

-1
Mike Cornell

Können Sie anhand dieser Antwort auf SO versuchen, das @ -Zeichen mit ^ zu umgehen?

Als Reaktion auf beides ist das Set erfolgreich. Das Tool verwendet die Umgebungsvariable: `set http_proxy = http: // foo: B ^ @ r @ http-gateway.domain.org: 80` `jruby -S gem install rake` ERROR: Bei der Ausführung von gem ... (URI :: InvalidURIError) akzeptiert das Schema http den Registrierungsabschnitt nicht: foo: B @ r @ http-gateway.domain.org: 80 (oder falscher Hostname?) pyropenguin vor 13 Jahren 0
Dies ist eine Linux-basierte Frage, keine Windows-basierte Frage. Die Verwendung von ^ funktioniert für mich nicht. Ich bekomme noch 'wget: Host-Adresse' tf4ce @ server.company.com '' kann nicht aufgelöst werden, nachdem die Proxy-Umgebungsvariable festgelegt wurde. Philluminati vor 12 Jahren 0
Eigentlich ist es eine Windows-basierte Frage ... Ich kenne Pyropenguin persönlich. Mike Cornell vor 12 Jahren 1