Экранирование символов
- 1 year ago
- 0
- 0
Экранирование символов — замена в тексте управляющих (служебных) символов на соответствующие им последовательности символов. Позволяет включить в текст такие символы, которые не могут быть включены в текст непосредственно. Например, если считается, что текст начинается кавычкой и заканчивается кавычкой, то не экранированная кавычка в тексте будет воспринята как признак конца текста, а не как символ текста, должна быть экранирована, чтобы восприниматься как символ текста. Экранирующий символ — символ, записываемый перед управляющим символом, чтобы управляющий символ считался не управляющим, а символом текста, часть управляющей последовательности символов .
Обычно тексты на языках программирования, на текстовых командных интерфейсах, на языках разметок текста ( HTML , TeX , wiki-разметка) являются структурированными текстами — текстами, в которых некоторые символы (и их комбинации) используются в качестве управляющих , в том числе управляющих структурой текста. Если необходимо использовать управляющий символ в качестве «обычного символа языка», применяют экранирование .
Условно выделяют три типа экранирования:
Необходимо экранировать управляющие символы в автоматически генерируемом структурированном тексте. На практике управляющие символы в текстах могут встречаться редко. Например, теоретически имя пользователя не должно содержать управляющих символов. Программист, желая упростить программу, может не реализовать экранирование входных данных. Злоумышленники, желая получить доступ к системе, могут подавать на вход программе произвольные символы, включая управляющие. Упрощённая программа имеет скрытую уязвимость . Стороннее лицо (автор строковых данных) получает возможность влиять на структуру генерируемого текста. Уязвимость становится серьёзной, если созданный текст является чьей-то программой. Традиционно таким проблемам подвержены системы, использующие языки SQL (смотрите SQL-injection ) и HTML (смотрите cross site scripting ).
r"
экранируемый текст
"
.
<nowiki>
и
</nowiki>
. Если нужно записать сам псевдотег
<nowiki>
, это делается символами подстановки (
<nowiki>
).
Когда в тексте много управляющих символов, будет много знаков экранирования; текст станет тяжеловесным. В таких случаях используют экранирование с завершающим текстом. Тогда управляющие символы считаются символами текста (не несут управляющих функций), а текст кончается, когда компилятор обнаруживает некоторую последовательность — завершающий текст.
<![CDATA[<sender>John Smith</sender>]]>;
$qry = <<<END
SELECT id
FROM `$aTableName`
WHERE `$aFieldName`='$sqFieldValue';
END;
Для улучшения этой статьи
желательно
:
|
|
В другом языковом разделе
есть более полная статья
(англ.)
.
|