Техника обеспечения HTML- и URL-кодирования

Кто-нибудь внедрил хорошую систему для обеспечения правильного HTML-кодирования вывода там, где это имеет смысл? Может быть, даже что-то, что распознает, когда вывод должен быть в кодировке URL или JSON?

Ленивый подход — просто кодирование всех входных данных — вызывает проблемы, когда вы хотите отправить эти входные данные в базу данных или в блок кода JavaScript. Так что нужно что-то поумнее.

Утомительный подход — размещение соответствующей функции кодирования вокруг каждой части данных в шаблоне — работает, но разработчики могут легко забыть об этом.

Существует ли хороший подход, облегчающий работу разработчиков и обеспечивающий правильное кодирование? Я слушал один из подкастов SO, и Джоэл поделился идеей об использовании типизированных данных для обеспечения различия между строками в кодировке HTML и строками, не закодированными. Может быть, это может быть отправной точкой.

Я ищу больше стратегию, чем реализацию на конкретном языке (хотя я был бы рад услышать о реализациях, которые уже существуют и работают).

EDIT: Вот несколько ссылок, которые я нашел:


person JW.    schedule 08.03.2010    source источник
comment
О каком серверном языке, о какой платформе (ах) вы говорите? Это необходимая информация IMO, если вы хотите получить подробные ответы.   -  person Pekka    schedule 08.03.2010
comment
Я использую PHP, но см. последний абзац.   -  person JW.    schedule 08.03.2010


Ответы (1)


Данные, которые попадают в вашу базу данных, вероятно, не должны иметь никакого экранирования для HTML, JavaScript или чего-то еще. Если вы включите разметку, вам просто придется удалить ее, если вы решите вставить эти данные в файл CSV или PDF и т. д.

Вместо этого всякий раз, когда вы запрашиваете «сырые» данные, подобные этому, из базы данных, избегайте данных в то время, когда это необходимо, куда бы вы их не вводили; HTML, строка JavaScript, сценарии на стороне сервера и т. д.

person Scott Smith    schedule 08.03.2010