Інструменти розробника · URL енкодер & декодер
URL кодування не є сантизацією: декодовані параметри все ще потрібно розшифрування
· Чому це питання
Опубліковано ToolAcre · Редакція журналу
виворітна обробка безпека ксіс

Непрозорий захист URL структура, не ваш HTML, SQL або оболонка. Цей пост пояснює, чому правильно закодоване значення стає небезпечним, тому він декодований, і який лежить там, де.
До чого URL кодування не може бути припинено XSS напад
Параметр "safe" може запустити скрипт, якщо кодується для передачі, але декодовано перед рендерингом. Розгляд XSS мітка img з керма на відсотків зашифровано як %3Cimg%20src%3Dx%20oнорв%3 Дальерт%281%29%3E. Якщо це подорожі в URL і декодовано за допомогою коду програми перед вставкою HTML, браузер бачить оригінальний розмітку і виконує ручку. Процент-покриття є шаром представлення; не змінює основну загрозу.
Завантажити безпечне тільки при передачі, коли він закодовано рядок без спеціального значення HTTP або URL кепікі. Знімок його декодовано, він знову стає небезпечним, оскільки перевернуться до початкової форми. Кожен контекст вектора повинен застосовувати власні правила, що відповідають вимогам, які будуть використовувати дані. URL кодування не замінює HTML еспресування, SQL параметризації або об'єктивного об'єкта.
Що відсотків-пригоди для — зберігаючи глухі глухі на дріт, нічого більше
Що таке акцептування відсотків URL структура точно. Амперсанд залишається частиною синхронного синтаксису, не перезимішується як дельімтер. Зіткнення не стане стебло сепаратора. Опитування не запускається фрагмента. За допомогою кодування зарезервованих символів %XX, парсер лікує їх як дані, не синтаксису. Це працює для однієї роботи: ведення URL структура неоднозначна на дріт.
Випадкові зворотні зв'язки, що точно так само, як і одна дорога. Відновлені байти точно що було зашифровано, нічого не більше і нічого не менше. HTML-небезпечний рядок залишається небезпечною, SQL-вектор введення небезпечний, а командування оболонки залишається небезпечним. Непрозора обробка не вдається валідації, не санітарії і не межи з безпекою. Формат представлення тільки.
Декодування відновлює оригінальні байти — так що кожен контекст уповільнення дивиться на сиру вартість знову
Контекстно-специфічний супровід – це те, що реальний захист життя дійсно живе. HTML контекстні потреби суб’єктів: менше <, більш-тан стає >, котирування стають ", амперс &. SQL контекстні запити, які задають структуру, що віддають перевагу, запобігаючи атаку з розбиття. Об'єкт Shell вимагає аргументів, які не дозволяють розщеплювати слово і повністю заглиблювати.
Кожен контекст має різні небезпечні символи та різні правила для закріплення. HTML суб'єкт нешкідливий SQL без використання для захисту. Запобігає запобіжникам SQL ін'єкцій в деяких базах даних, але не інші. Shell escaping залежить від стилю котирування. Розробник повинен розуміти призначення перед вибором як обробляти дані.
Контекстно-специфічний еспресинг — HTML суб'єкти для розмітки, параметрованих запитів SQL, масиви аргументів для оболонок
У роботі: за допомогою посилання на журнал, щоб дізнатися, де кодування та вивантаження необхідно. Посилання містить кодований XSS перевантаження як параметр запиту. Сервер отримує його ще зашифровано в HTTP запитувати тіло. Застосунок декодує параметр запиту на відображення його на сторінці. Без вихідних есапінгів, браузер надає завантаження як HTML і виконує його.
Якщо ж параметр записався до файлу, запис журналу містить декодований завантаження. Другий додаток знову читає журнал, знову вставляє його в HTML сторінка без накидок. Завантажити замовлення здійснюється вдруге. На кожному етапі контекст визначився, що було безпечно. URL безпечне знешкодження. Зберігання файлів було безпечно. Але HTML без замішування було жирним.
У відповідь на те, що ви можете отримати інформацію про файли cookie, щоб перевірити їх, щоб перевірити його, якщо це буде вказано, якщо це буде видалено, де він повинен бути втекований
Захоплення як фільтр-виразний інструмент показує, чому атакуючі подвійні коди та змішувати шейф-кейс. Якщо брандмауер виглядає для тегу img, атакатор надсилає %3Cimg і сподівається на застосування декодує один раз, але брандмауер не робить. Якщо віра відхиляє %3Cimg, але дозволяє різним випадках, однакові байти декодують однаковому перевантаженні. Безпека в залежності від типу, що відповідає закодованому вводі, є крихким.
Випадкові обов'язки повинні бути точними і передбачуваними абсолютно. Канонічна форма (повітровий шіст, відомий кодування) дозволяє послідовно виконувати політику, але не вирішує основну проблему. До використання можна використовувати тільки надійний підхід, де необхідно і застосувати контекстне вилучення, що видає безпосередньо перед використанням. Випадковий небезпечний, тільки необхідний для передачі.
Захоплення як фільтр-виразний інструмент — чому атакуючі подвійні коди та змішувати шістнадцятковий чохол, і чому декодування повинно бути точним
Завершити XSS захист вимагає повного розуміння потоків даних, в якому він проходить через кожен крок, що скидання кожного контексту. URL кодування є одним невеликим шматком: зберігає структуру під час передачі тільки. Але один шматок не захистить себе вічно. Багато розробників conflate кодування з санітацією, оскільки обидва залучені заміни персонажів, але служать абсолютно різними важливими роботами.
Web Application Firewall може виявити візерунки в запиту на завантаження, але кодування легко evade простий шаблон, що відповідає технікам. WAF фурнітура – це комплексне і поза URL кодування. Надійний захист є вихідним кодом у додатку, що поєднується з входом, що робить сенс для вашого конкретного контексту та вимог.
Що це не криється — повний XSS керівництво користувача або веб-додаток
Завершити XSS захист вимагає повного розуміння потоків даних, в якому він проходить через кожен крок, що видає кожен контекст, необхідний протягом усього застосування. URL кодування є одним невеликим шматком: зберігає структуру під час передачі тільки. Але один шматок не захистить себе вічно. Багато розробників conflate кодування з санітацією, оскільки як і залучення заміни символів, але служать абсолютно різними важливими роботами по всій розробці.
Тест-завантаження кінцевого до-енду, щоб побачити, де кодування та виснаження дійсно протягом усього процесу. Паста %3Cimg%20src%3Dx%20oнорв%3 Дальерт%281%29%3E в URL декодер і годинник стають рядок, схожим на розмітку. Потім вставте результат HTML резидент, який бачить, як стає безпечним текстом. Два інструменти показують шари чітко видимі.
Приймати: кодування URL, втечу за вихід — як працює URL енкодер і декодер і HTML резидент втечу, що сидять на стороні в одному продукті для двох різних робочих місць
В той час, як кодування та еспресування є окремими проблемами на різних шарах. URL кодування захищає передається структура тільки. Вивід застібки захищає від вмісту, що надає. Корисно зашифроване значення все ще потребує вилучення вихідного при досягненні HTML. Правильно втечувається рядок ніколи не потребує URL кодування, якщо не вводити URL.
Наносити праву захист на правому шарі справно. Не лякайтесь на URL кодування для зупинки XSS напади. Не лякайтесь на HTML еспресування для збереження URL структура. Підтримуйте доступ до даних та нанесіть відповідні перетворення на кожному етапі. URL encoder дозволяє бачити, що кодування робить; потім використовувати HTML учасник втечу для виходу.