Veelvoorkomende URL-codering Fouten
Zelfs ervaren ontwikkelaars maken deze URL-codering fouten. Leer ze te herkennen en vermijden.
Dubbele codering
Dubbele codering gebeurt wanneer al gecodeerde gegevens opnieuw worden gecodeerd. Het percent-teken zelf wordt %25, dus "München" (M%C3%BCnchen) wordt M%25C3%25BCnchen wanneer dubbel gecodeerd. Dit gebeurt wanneer meerdere lagen van je applicatie elk proberen codering toe te passen, of wanneer je encodeURIComponent() aanroept op al gecodeerde gegevens. Om te vermijden: codeer gegevens precies één keer aan de grens waar ruwe gegevens URL-structuur binnengaan. Controleer of gegevens al zijn gecodeerd voordat codering wordt toegepast.
Ontbrekende codering
Het niet coderen van speciale karakters creëert subtiele bugs. Een niet-gecodeerde & in een parameterwaarde splitst het in twee parameters. Een niet-gecodeerde # tranceert de URL vroeg. Dit gebeurt vaak wanneer ontwikkelaars aannemen dat gebruikersinvoer alleen "veilige" karakters bevat, of wanneer ze URL's handmatig bouwen met string concatenatie. Om te vermijden: codeer altijd gebruikersinvoer. Gebruik URL-constructor klassen die codering automatisch behandelen. Behandel alle externe gegevens als onvertrouwd.
Verkeerde functie gebruik
JavaScript heeft encodeURI() en encodeURIComponent()—ze zijn niet uitwisselbaar. encodeURI() is voor volledige URL's en laat URL-structuur karakters niet-gecodeerd. encodeURIComponent() is voor individuele componenten en codeert alles inclusief structuurkarakters. Voor query parameter-waarden heb je bijna altijd encodeURIComponent() nodig. Het gebruik van encodeURI() laat karakters zoals & en = niet-gecodeerd, wat de URL breekt. Om te vermijden: gebruik encodeURIComponent() voor parameter-waarden, pad-segmenten en enige data die je in een URL embeds. Gebruik alleen encodeURI() wanneer je specifiek een volledige URL hebt om te coderen terwijl de structuur behouden blijft.
Probeer de Tool
URL Encoder/Decoder