it-swarm-eu.dev

Které speciální znaky lze bezpečně použít v adrese URL?

Které speciální znaky lze bezpečně použít v adrese URL?

13
YOU

Bezpečné znaky jsou a-z, A-Z, 0-9 a _ - (podtržítko a mínus), které kromě vyhrazených znaků používají pro parametry.

Jiné postavy budou do určité míry způsobovat problémy. příklad: pokud je jeden parametr maticí ?param=array[content], tj. zobrazí adresu URL, která je zakódována v hranatých závorkách url, které vypadají ošklivě a nelze diktovat.

Ale problém není jen ošklivý, řekněme, že máte jpg s postavou vedle těch bezpečnějších, mnohokrát si prohlížeč nebude moci stáhnout 404. To je problém starších prohlížečů a některých mobilních prohlížečů.

Jak to otestovat?

  • vložte spoustu obrázků/js/css se znaky, které chcete otestovat do jmen na veřejné stránce s mnoha návštěvníky
  • Nechte stránku 404, aby vám zaslala e-mail pokaždé, když dojde k zásahu

Mám doručenou poštu se 14 000 e-maily, které dokládají můj názor.

10

Následující znaky mají zvláštní význam ve složce cesty vaší adresy URL (složka cesty je před znakem „?“):

  ";" | "/" | "?"

Kromě těchto znaků mají v znakové části adresy URL zvláštní význam následující znaky (vše za znakem „?“). Proto, pokud jsou za „?“ musíte jim uniknout:

  ":" | "@" | "&" | "=" | "+" | "$" | ","

Podrobnější vysvětlení viz RFC .

11
Thomas Bonini

Odpovědi jsou dobré, ale myslím, že stojí za zmínku ještě jedna výjimka - neanglické znaky. Odkazování tato otázka SF zde , znaky jako ñ (jako v Españolu) jsou naprosto legitimní, POKUD byly správně zakódovány ve vašem DNS.

Musíte použít Punycode ve svém DNS, abyste je mohli vyřešit v moderních prohlížečích (položka pro español je xn--espaol-zwa), ale tyto jsou nyní naprosto bezpečné pro použití v názvech domén, protože opět snadno psát i pro jiné než anglické reproduktory.

3
Mark Henderson