Czy używanie @
symbolu jako części użytkownika jest bezpieczne? Na przykład możliwy adres URL to http://example.com/@dave
.
Chodzi o to, że w dzisiejszych czasach użytkownicy są powszechnie nazywani „@user”, więc dlaczego nie utworzyć strony użytkownika „@username”?
Odpowiedzi:
Zakodowane w procentach…
Możesz użyć
@
znaku w ścieżkach HTTP URI, jeśli zakodujesz go w procentach jako%40
.Wiele przeglądarek nadal wyświetlałoby go jako
@
, ale np. Kiedy skopiujesz i wkleisz URI do dokumentu tekstowego, będzie%40
.… Ale także bezpośrednio
Zamiast kodowania procentowego możesz użyć go
@
bezpośrednio w ścieżce HTTP URI.Zobacz składnię ścieżki identyfikatora URI. Różne niepowiązanych klauzule bok, ścieżka może zawierać znaki na
segment
,segment-nz
lubsegment-nz-nc
zestawie.segment
isegment-nz
składa się ze znaków zepchar
zbioru, który definiuje się jako:Jak widać,
@
jest wyraźnie wymieniony.segment-nz-nc
Zestaw wymienia również@
charakter wyraźnie:Tak więc taki identyfikator HTTP URI jest całkowicie prawidłowy:
Przykład
Oto przykładowa strona Wikipedii:
http://en.wikipedia.org/wiki/%22@%22_%28album%29
Jak widać, to
"
,(
i)
znaki są kodowane procent, ale@
i_
stosuje się bezpośrednio.źródło
@
już adresów URL, ale stare (?) Adresy URL profilu nadal działają: przykład z kodowaniem procentowym@
( nie działa!) Vs. przykład z użyciem@
bezpośrednio (nie praca!) .@
w przypadku Twittera. Ich wewnętrzne linki odsyłają jednak do adresu URL bez@
: twitter.com/@stackexchange@
nie jest nieograniczony . Dlatego konsumenci nie mogą tego zakładać%40
i@
są równoważni.Many browsers would display it still as @, but e.g. when you copy-and-paste the URI into a text document, it will be %40.
To nie jest prawda w przypadku Chrome.Czy możesz użyć symbolu @ w adresie URL? - Tak, możesz!
Zauważ, że @ -character, wartość szesnastkowa 40, wartość dziesiętna 64, jest zastrzeżonym znakiem dla identyfikatorów URI. Jego użycie dotyczy na przykład adresów e-mail w
mailto:
identyfikatorach URImailto:[email protected]
i przekazywania informacji o nazwie użytkownika i haśle w identyfikatorze URI (co jest złym pomysłem, ale możliwe):http://username:[email protected]
Jeśli potrzebujesz adresu URL, który ma w ścieżce symbol @, musisz go zakodować za pomocą tak zwanego „ kodowania adresu URL ”. Na przykład w ten sposób:
http://somewhere.foo/profile/username%40somewhere.foo
Wszystkie nowoczesne przeglądarki wyświetlą to jako http://somewhere.foo/profile/[email protected] i przekonwertują każdy wpisany @ -sign na
%40
, więc jest łatwy w użyciu.Wiele platform internetowych pomoże Ci również automatycznie lub za pomocą funkcji pomocniczych w konwersji do iz adresów URL zakodowanych w adresach URL.
Podsumowując: tak, możesz użyć symbolu @ -symbol w adresie URL, ale musisz upewnić się, że jest on zakodowany, ponieważ nie możesz użyć znaku @ .
źródło
@
znaki nie „muszą” być kodowane w części ścieżki adresu URL ( greenbytes.de/tech/webdav/rfc3986.html#path )W RFC następujące znaki:
są zarezerwowane i:
Dlatego nie zaleca się używania tych znaków bez kodowania.
źródło
Zasadniczo nie.
@
jest zastrzeżonym znakiem i powinien być używany tylko zgodnie z jego przeznaczeniem.Zobacz: http://perishablepress.com/stop-using-unsafe-characters-in-urls/ i http://www.ietf.org/rfc/rfc3986.txt
Można go używać w postaci zakodowanej, ale nie sądzę, że o to pytałeś.
Najwyraźniej nowoczesne przeglądarki sobie z tym poradzą. Jednak zapytałeś, czy jest to bezpieczne i zgodnie ze specyfikacją RFC nie powinieneś go używać (niezakodowany), chyba że jest to zgodne z jego przeznaczeniem.
źródło