Lees eerst de hostnaam
Een URL kan een schema, gebruikersinformatie, host, poort, pad, query en fragment bevatten. De hostname identificeert de doelnaam; woorden in een pad of query identificeren de operator niet. In https://example.net/bank-login is bank-login een pad op example.net.
Een @ symbool kan gebruikersinformatie introduceren. In https://[email protected]/ is de bestemming hostname example.net, niet trusted-name. Bewaar de originele string, en gebruik dan een standaardbewuste parser in plaats van de link alleen met het oog te lezen.
Codering en geïnternationaliseerde namen
Procentcodering kan tekens in paden en query's verbergen. Geïnternationaliseerde namen kunnen worden weergegeven met Punycode beginnend met xn--. Decodeer voor interpretatie, maar houd de oorspronkelijke tekst ongewijzigd. Gelijk ogende Unicode-tekens zijn niet noodzakelijkerwijs identiek.
Query strings kunnen inlogtokens, identificatiegegevens of persoonlijke data bevatten. Stuur geen complete gevoelige URL's naar openbare analysediensten zonder autorisatie. Een fragment wordt normaal gesproken door de browser afgehandeld in plaats van als onderdeel van het HTTP-verzoek verzonden.
Veilige initiële triage
Begin met offline parsing en openbare DNS- of registratie-opzoekingen. Bezoek geen verdachte bestemming in uw dagelijkse browser. Een parser beschrijft een URL; het certificeert niet dat de bestemming veilig is.
- Bewaar de originele URL in het oorspronkelijke bericht of artefact.
- Identificeer schema, host, poort, pad en query afzonderlijk.
- Controleer op gebruikersinformatie, lookalikes en gecodeerde tekens.
- Verwijder gevoelige gegevens alleen uit kopieën die worden gebruikt voor externe inzendingen.
