Кодирование вывода
Что такое Кодирование вывода?
Кодирование выводаПреобразование недоверенных данных в безопасную для конкретного контекста вывода (HTML, JavaScript, URL, SQL, shell) форму, чтобы они не вырвались и не выполнились как код.
Кодирование вывода (escape) — основной приём против инъекций, возникающих при рендере данных в другом интерпретаторе. Правила различаются по контекстам: HTML-сущности для тела HTML, кодирование атрибутов для HTML-атрибутов, Unicode-эскейпы JavaScript для строковых литералов JS, percent-encoding для URL, параметризованные API для SQL и shell. Кодирование выполняется точно там, где данные пересекают границу доверия и попадают в нижестоящий интерпретатор, с использованием подходящего энкодера. В сочетании с валидацией ввода и параметризованными запросами оно является ключевым средством против XSS, HTML-инъекций, командных инъекций и CSV-инъекций.
● Примеры
- 01
HTML-кодирование пользовательских комментариев перед выводом в страницу для защиты от отражённого XSS.
- 02
JavaScript-кодирование значений, вставляемых в строковый литерал JS в серверном шаблоне.
● Частые вопросы
Что такое Кодирование вывода?
Преобразование недоверенных данных в безопасную для конкретного контекста вывода (HTML, JavaScript, URL, SQL, shell) форму, чтобы они не вырвались и не выполнились как код. Относится к категории Безопасность приложений в кибербезопасности.
Что означает Кодирование вывода?
Преобразование недоверенных данных в безопасную для конкретного контекста вывода (HTML, JavaScript, URL, SQL, shell) форму, чтобы они не вырвались и не выполнились как код.
Как защититься от Кодирование вывода?
Защита от Кодирование вывода обычно сочетает технические меры и операционные практики, как описано в определении выше.
Какие есть другие названия Кодирование вывода?
Распространённые альтернативные названия: Экранирование вывода, Контекстное экранирование.