Najpierw odczytaj nazwę hosta
URL może zawierać schemat, informacje o użytkowniku, hosta, port, ścieżkę, zapytanie i fragment. Nazwa hosta identyfikuje nazwę docelową; słowa w ścieżce lub zapytaniu nie identyfikują operatora. W https://example.net/bank-login, bank-login to ścieżka na example.net.
Symbol @ może wprowadzać informacje o użytkowniku. W https://[email protected]/ nazwa hosta docelowego to example.net, a nie trusted-name. Zachowaj oryginalny ciąg, a następnie użyj parsera zgodnego ze standardami, zamiast odczytywać link wyłącznie wzrokowo.
Kodowanie i nazwy umiędzynarodowione
Kodowanie procentowe może ukrywać znaki w ścieżkach i zapytaniach. Nazwy międzynarodowe mogą być reprezentowane za pomocą Punycode rozpoczynającego się od xn--. Dekoduj do interpretacji, zachowując oryginalny tekst niezmieniony. Podobne wizualnie znaki Unicode niekoniecznie są identyczne.
Ciągi zapytań mogą zawierać tokeny logowania, identyfikatory lub dane osobowe. Nie wysyłaj pełnych wrażliwych adresów URL do publicznych usług analitycznych bez autoryzacji. Fragment jest zazwyczaj obsługiwany przez przeglądarkę, a nie wysyłany jako część żądania HTTP.
Bezpieczne wstępne sortowanie
Rozpocznij od parsowania offline i publicznych zapytań DNS lub rejestracyjnych. Nie odwiedzaj podejrzanego miejsca w swojej codziennej przeglądarce. Parser opisuje URL; nie certyfikuje, że miejsce docelowe jest bezpieczne.
- Zachowaj oryginalny adres URL w jego oryginalnej wiadomości lub artefakcie.
- Zidentyfikuj schemat, hosta, port, ścieżkę i zapytanie oddzielnie.
- Sprawdź informacje o użytkowniku, podobieństwa i zakodowane znaki.
- Usuń wrażliwe dane tylko z kopii używanych do zewnętrznych zgłoszeń.
