|
|
|
|
Прочитал интересную статью про уязвимость ,может комуто пригодится...
|
Отдельно стоит упомянуть использование для XSS-атаки скриптов, написанных в кодировке UTF-7. Эта кодировка замечательна тем, что угловые скобки в ней записываются как «+ADw-» и «+AD4-» и, стало быть, пропускаются функцией htmlspecialchars нетронутыми. Если браузер пользователя настроен на автоопределение кодировки, а ни в заголовках, ни на странице в теге <meta> до любого контента не прописано кодировки, браузер, встретив в контенте характерные для UTF-7-кодировки символы, переключится в эту кодировку и выполнит код.
Например, у нас на форуме название темы идет в тег <title>, секция <head> документов начинается таким образом:
<title>MegaForum - название темы</title>
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251" />
|
Кодировка прописана, но, к сожалению, уже после вывода поступившего от посетителя названия в <title>. И если он, к примеру, назовет тему
+ADw-/title+AD4APA-script+AD4-скрипт+ADsAPA-/script+AD4-
|
то в результате браузер прочитает и проинтерпретирует код
<title>MegaForum - </title><script>скрипт</script>
|
Последствия, думаю, очевидны. А вся проблема из-за того, что <meta> с указанием кодировки не стояла перед <title>. | |
|
|
|
|
|
|
|
для: serjinio
(13.09.2008 в 19:19)
| | Должным образом кодировка прописывается отнюдь не в meta.
А в поле Content-type заголовка ответа сервера.
Туда она попадает из директивы апача addDefaultCharset (или из явного вызова header()) | |
|
|
|