|
|
|
| Здравствуйте,
На данный момент пишу свой визуальный редактор. Во время разработки возник вопрос по поводу того, как он может повлиять на безопасность работы сайта. Для начала опишу кратко структуру работы редактора:
Имеется два окна для редакторивания: визуальный редактор и HTML-редактор. Взаимодействие между окнами происходит тогда, когда пользователь между ними переключается:
1. Пользователь переходит из визуального окна в HTML, в этот момент окну HTML передаётся содержимое визуального окна, а для того, чтобы можно было видеть сам код, все символы (к примеру < и >) заменяются на свои HTML-коды (к примеру, > и <). Здесь вроде всё нормально и безопасно.
2. Пользователь переходит из окна HTML и визуальное окно. В этот момент визуальному окну передаётся содержимое HTML окна, а символы > и < заменяются на < и >, чтобы в визуальном окне всё отображалось как необходимо. Проблема возникает в следующем: какую угрозу может принести ситуация, когда пользователь в HTML-окне прописывает скрипты <script></script> и т.д.? Понятно, что их можно просто заменить на что-то безопасное отдельно, но в таком случае есть ещё возможность написать код, к примеру, так:
<span onclick="alert('');">text</span>
|
Может ли это принести безопасность работоспособности сайта или пользователям (кроме, разумеется самого компьютера злоумышленника, который эти коды будет писать)? Если да, то как это всё можно избежать?
Все данные, передаваемые из окна редактора на сервер, естественно, проверяются средствами PHP.
И вообще, каковы особенности безопасности визуальных редакторов? (статей в интернете на эту тематику, увы, не нашёл, хотя искал, видно плохо искал;) ) | |
|
|
|
|
|
|
|
для: Desh
(08.08.2009 в 17:58)
| | Просто при выводе делайте htmlspecialchars() и всё. | |
|
|
|
|
|
|
|
для: Саня
(08.08.2009 в 18:25)
| | Разве htmlspecialchars() есть в javascript?
К тому же выводить в визуальное окно надо как раз-таки нормальные < >, а не их кодовые эквиваленты, т.к. иначе форматирвание не будет отображаться... | |
|
|
|
|
|
|
|
для: Desh
(08.08.2009 в 19:10)
| | Дуете на воду... | |
|
|
|
|
|
|
|
для: PAT
(08.08.2009 в 19:31)
| | Хотите сказать, что ни к чему опасному эти махинации пользователя (написание в редакторе скриптов) не приведут? | |
|
|
|
|
|
|
|
для: Desh
(08.08.2009 в 19:59)
| | максимум он сможет запустить их на своей машине - как только нажмет сохранить - на сервере обработает как вам ответили выше | |
|
|
|
|
|
|
|
для: AlexSol
(08.08.2009 в 21:11)
| | А ведь это верно)
Большое спасибо, одной проблемой стало меньше) | |
|
|
|