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. Тогда он должен пройти его правильно.

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

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

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

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

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

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

Матас Вайткявичюс
источник