URL: Tên người dùng với @


125

Để gửi tên người dùng và mật khẩu với một URL, chúng tôi sử dụng lược đồ này:

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

Nhưng tên người dùng của tôi là my_email@gmail.com.
Vấn đề là @.

Làm thế nào tôi có thể giải quyết nó?


10
mã hóa @dưới dạng %40.
Marc B

6
Bạn không muốn bao gồm mật khẩu trong URL của mình, vì sau đó bạn có thể vô tình cố gắng truy cập URL qua HTTP (mà bạn đang thực hiện) và điều này có nghĩa là bất kỳ ai có Wireshark cách bạn 50 mét đều có mật khẩu và tên người dùng của bạn.
HoldOffHunger

Câu trả lời:


182

Bạn cần mã hóa URL @ dưới dạng% 40.


1
Đẹp. Điều này cũng hoạt động nếu mật khẩu của bạn cũng chứa mật khẩu @, điều này ngày càng có khả năng xảy ra với các mật khẩu ngẫu nhiên do người quản lý mật khẩu tạo.
Adambean

tôi có phải làm điều này với tất cả các ký tự khác với chữ và số không? ví dụ, nếu tên người dùng name.lastname@mail.comvà mật khẩu của tôi abc!@#, tôi có nên sử dụng name%2Elastname%40mail%2Ecomabc%21%40%23?
m4l490n

19

Sử dụng% 40 trong tên người dùng của bạn thay vì ký hiệu @ cho mã hóa url. Nó sẽ vượt qua nó đúng cách sau đó.


Điều này hiện hoạt động hiệu quả khi bitbucket không cho phép tên người dùng đơn giản nữa, nhưng yêu cầu tên người dùng kiểu username@example.org.
Jeroen Wiert Pluimers

14

Cứ làm đi:

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

Tôi khá ngạc nhiên rằng vấn đề là với tên người dùng @ chứ không phải mật khẩu - thông thường đây là nơi tôi nhận được các ký tự dành riêng trong quyền url hoặc các phần đường dẫn.

Để giải quyết trường hợp chung của các nhân vật đặc biệt: Chỉ cần mở chrome console với F12sau đó dán encodeURIComponent(str)ở đâustr là mật khẩu của bạn (hoặc tên người dùng) và sau đó sử dụng kết quả mã hóa mẫu url bằng mật khẩu.

Hy vọng điều này giúp bạn tiết kiệm thời gian.

Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.