URL: имя пользователя с @


125

Чтобы отправить имя пользователя и пароль с URL-адресом, мы используем эту схему:

http://username:password@www.my_site.com

Но мое имя пользователя my_email@gmail.com.
Проблема в том @.

Как я могу это решить?


10
закодировать @как %40.
Marc B

6
Вы не хотите включать пароль в свой URL-адрес, потому что тогда вы можете случайно попытаться получить доступ к URL-адресу через HTTP (что вы делаете), а это означает, что любой, у кого Wireshark находится в пределах 50 метров от вас, имеет ваш пароль и имя пользователя.
HoldOffHunger

Ответы:


182

Вам нужно URL-адрес закодировать @ как% 40.


1
Ницца. Это также работает, если ваш пароль содержит @тоже, что все более вероятно со случайными паролями, созданными менеджерами паролей.
Adambean

я должен делать это со всеми символами, отличными от буквенно-цифровых? например, если мое имя пользователя name.lastname@mail.comи мой пароль abc!@#, следует ли мне использовать name%2Elastname%40mail%2Ecomи abc%21%40%23?
m4l490n

19

Используйте% 40 в своем имени пользователя вместо символа @ для кодировки URL. Тогда он должен пройти его правильно.


Это прекрасно работает теперь, когда битбакет больше не позволяет использовать простые имена пользователей, но требует имени пользователя в стиле username@example.org.
Jeroen Wiert Pluimers

14

Просто сделать:

 http://my_email%40gmail.com:password@www.my_site.com

Я очень удивлен, что проблема @связана с именем пользователя, а не с паролем - обычно именно здесь я получаю зарезервированные символы в полномочиях URL-адреса или в частях пути.

Чтобы решить общий случай использования специальных символов: просто откройте хромированную консоль, F12затем вставьте, encodeURIComponent(str)где strнаходится ваш пароль (или имя пользователя), а затем используйте закодированный результат для формирования URL-адреса с паролем.

Надеюсь, это сэкономит вам время.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.