Разбирайте ссылку на протокол, хост, порт, путь, запрос и фрагмент так, как это делает браузер.
URL-кодирование и декодирование
Сам инструмент доступен на английском языке; на этой странице приведено его описание на вашем языке.
Используйте URL-кодирование и декодирование
Для чего это нужно
Декодируйте текст в процентной кодировке, например цель перенаправления, спрятанную в фишинговой ссылке, или кодируйте текст для URL с помощью encodeURIComponent или encodeURI.
Приложение работает полностью в браузере: никакие введенные вами данные не передаются на сервер.
Как использовать URL-кодирование и декодирование
- Вставьте текст. Вставьте закодированную строку, например значение параметра url= или redirect=, или обычный текст, который нужно закодировать.
- Выберите действие. Нажмите decode, чтобы превратить последовательности %XX обратно в символы, encodeURIComponent, чтобы закодировать одно значение, или encodeURI, чтобы закодировать адрес целиком.
- Прочитайте результат. Результат появится в поле под кнопками. Error означает, что ввод недопустим для этого действия.
- При необходимости декодируйте снова. Каждое нажатие decode снимает один слой. Если вы всё ещё видите %25, %3A или %2F, вставьте результат обратно в поле и декодируйте снова.
- Скопируйте или передайте дальше. Copy копирует результат. Send to… передаёт его в Link Unwrapper, Multi-Layer Decoder, URL Defanger или Homoglyph Checker.
Пример
Закодированная цель перенаправления
https%3A%2F%2Flogin.example.com%2Fverify%3Fuser%3Dalice%40example.com%26step%3D2https://login.example.com/verify?user=alice@example.com&step=2Decode даёт https://login.example.com/verify?user=alice@example.com&step=2. Фишинговые ссылки часто передают так адрес электронной почты получателя, чтобы поддельная страница входа могла его подставить.
Что проверяется
| Сигнал | Что это означает |
|---|---|
| Декодированный результат | Каждая последовательность %XX превращается в символ, который она обозначает, в кодировке UTF-8. Ищите внутри второй полный адрес, адрес электронной почты или скрипт. |
| %25 в результате | %25 — это закодированный знак процента. Если в результате всё ещё есть %3A, %2F или %25, исходный текст, вероятно, был закодирован дважды — распространённый способ скрыть адрес назначения от беглого взгляда. |
| Error | Декодирование не удаётся при одиночном %, % с не-шестнадцатеричными символами после него или неполной последовательности UTF-8. Кодирование не удаётся только при сломанной суррогатной паре, что редко встречается во вставленном тексте. |
| Знаки плюса | decode оставляет + как есть. В строках запроса в стиле форм + означает пробел, поэтому читайте его так сами. |
| Результат encodeURIComponent | Кодирует всё, кроме букв, цифр и нескольких знаков — дефиса, подчёркивания, точки и тильды, поэтому : / ? & = # и @ кодируются. Используйте его для значения одного параметра, например адреса электронной почты. |
| Результат encodeURI | Сохраняет символы, которые задают структуру URL, например : / ? & = # @, и кодирует пробелы и не-ASCII буквы. |
| Не-ASCII буквы | При кодировании каждая не-ASCII буква записывается как от двух до четырёх байтов %XX. Кириллическая буква или буква с диакритикой, спрятанная таким образом, видна только после декодирования. |
Еще примеры
Дважды закодированная цель перенаправления
https%253A%252F%252Fexample.net%252Flogindecode даёт https%3A%2F%2Fexample.net%2Flogin. Повторное декодирование этого результата даёт https://example.net/login.
Адрес электронной почты как значение одного параметра
alice@example.com&next=/accountencodeURIComponent даёт alice%40example.com%26next%3D%2Faccount, поэтому & и / больше не могут разбить строку запроса.
Целый адрес с пробелом и диакритикой
https://example.org/search?q=café & teaencodeURI даёт https://example.org/search?q=caf%C3%A9%20&%20tea. Знак & остаётся, поэтому tea начнёт новый параметр; для значения используйте encodeURIComponent.
Часто задаваемые вопросы
Чем отличаются три кнопки?
encodeURIComponent экранирует всё, кроме букв, цифр и нескольких знаков вроде - _ . ~, поэтому подходит для значения одного параметра. encodeURI сохраняет структуру URL, например : / ? & = #, а decode обращает последовательности %XX.
Почему декодирование показывает Error или оставляет %2F?
Некорректная последовательность, например одиночный % или обрезанная %E0%A4, приводит к сбою декодирования, и инструмент показывает Error. За один запуск снимается один слой, поэтому дважды закодированный текст (%252F) нужно декодировать повторно или в Multi-Layer Decoder, а + не превращается в пробел.
Отправляется ли текст куда-нибудь?
Нет. Кодирование и декодирование используют встроенные функции браузера на этой странице; ничего не загружается, и ни одна ссылка не открывается.
Зачем вообще кодировать фишинговую ссылку?
Кодирование прячет читаемый адрес внутри параметра, поэтому превью, фильтр или беглый взгляд видят только первый хост. Сервисы перенаправления и почтовые сканеры тоже кодируют адрес назначения, когда оборачивают ссылку.
Меняет ли декодирование что-то ещё в тексте?
Нет. Меняются только последовательности %XX. Буквы и знаки + остаются как есть, а HTML-сущности не преобразуются.
Как декодировать целиком обёрнутую ссылку, например адрес Safe Links?
Используйте Link Unwrapper. Он находит параметр с адресом назначения и декодирует его слой за слоем. Этот инструмент декодирует всю строку сразу, поэтому части, относящиеся к обёртке, тоже декодируются.
Почему буквы с диакритикой или кириллица превращаются в несколько групп %XX?
Символы вне ASCII сначала записываются как байты UTF-8, и каждый байт кодируется отдельно. é превращается в %C3%A9, а кириллическая а — в %D0%B0.