Kodowanie url to system który zamienia niektóre znaki na znak procentu + znacznik szesnastkowy. Stosowany jest głównie po to, by przesyłane znaki specjalne były odpowiednio zinterpretowane przez serwer odbierający żądanie.

RCF3986 określa dwie grupy znaków – niezastrzeżone i zastrzeżone.

Znaki niezastrzeżone to:

Aby bezpłatnie odblokować dalszą treść kliknij "Zapisz się" - dostaniesz nielimitowany dostęp do wszystkich treści i wyślę Ci na maila kilka wyjątkowych bonusów !
Jeśli jesteś już zapisany - Kliknij "Zaloguj się" i podaj swojego maila - treść zostanie odblokowana:
Zaloguj się lub Zapisz się
Sprawdź Przejdź do zapisu
Anuluj
Dalsza część artykułu jest dostępna tylko dla zapisanych do newslettera. Aby zapisać się do newslettera Kliknij tutaj , lub wypełnij pola w bocznym panelu.
Jeśli jesteś już zapisany - podaj poniżej swój adres e-mail: Odblokuj
adotpay
Anuluj

Znaki zastrzeżone to:
Aby bezpłatnie odblokować tą treść kliknij w ten przycisk i zapisz się do naszej społeczności - dostaniesz nielimitowany dostęp do wszystkich treści !
Lista znaków z odpowiadającym im kodowaniem:
Aby bezpłatnie odblokować tą treść kliknij w ten przycisk i zapisz się do naszej społeczności - dostaniesz nielimitowany dostęp do wszystkich treści !
Kodowanie url używa się w wielu przypadkach:

  • wysyłanie żądań do api
  • parsowanie adresów przed dodaniem do bazy danych
  • testowanie ( i omijanie) filtrów w aplikacjach wymagających interakcji

Pełną listę wszystkich znaków wraz z odpowiednim kodowaniem znajdziesz tutaj

Jak zakodować url?

Kodowanie url można wykonać na wiele sposobów , w zależności od używanego języka:

PHP

Kod:
Aby bezpłatnie odblokować tą treść kliknij w ten przycisk i zapisz się do naszej społeczności - dostaniesz nielimitowany dostęp do wszystkich treści !
Wynik:
Aby bezpłatnie odblokować tą treść kliknij w ten przycisk i zapisz się do naszej społeczności - dostaniesz nielimitowany dostęp do wszystkich treści !
PERL ( wymagany pakiet ​liburi-encode-perl )

Kod:
Aby bezpłatnie odblokować tą treść kliknij w ten przycisk i zapisz się do naszej społeczności - dostaniesz nielimitowany dostęp do wszystkich treści !
Wynik:
Aby bezpłatnie odblokować tą treść kliknij w ten przycisk i zapisz się do naszej społeczności - dostaniesz nielimitowany dostęp do wszystkich treści !
Python

Kod:
Aby bezpłatnie odblokować tą treść kliknij w ten przycisk i zapisz się do naszej społeczności - dostaniesz nielimitowany dostęp do wszystkich treści !
Wynik:
Aby bezpłatnie odblokować tą treść kliknij w ten przycisk i zapisz się do naszej społeczności - dostaniesz nielimitowany dostęp do wszystkich treści !

Kodowanie znaków niezastrzeżonych – możliwe?

Tak – zamieniamy znak na kod ASCII i dodajemy znak % na początku.

np. A to %41

Podwójne kodowanie

Podwójne kodowanie jest tym samym co pojedyńcze, z tym że dodatkowo zamieniamy znak % z pierwszego kodowania na jego odpowiedni, tj %25.

Przykładowo znak równości (=):
– kodowanie pojedyńcze: %3D
– kodowanie podwójne: %253D

Najczęściej jest stosowane w przypadku ataków LFI ( Local File Inclusion), lub chęci zmylenia filtrów jeśli wykrywają pojedyńcze kodowanie.
Największą “sławę” zdobyło w chwili ujawnienia istnienia tej luki w IIS 5.0 kilkanaście lat temu (CVE-2001-333)

Po(x)jne kodowanie

Kodowanie znaków można wykonać dowolną ilość razy – w kolejnych iteracjach zasada działania jest taka sama jak dla kodowania podwójnego.

Potrójne kodowanie dla znaku równości wynosić będzie więc %25253D , poczwórne %2525253D itp.

5 (100%) Ocen: 1