|
|
|
| Здраствуйте гуру =) Доброй ночи.
Вопрос таков: у меня есть служба блогов, так вот тут решил в неё вшить html редактор, отсюда вопрос, как его разрешить, чтобы угрозы безопасности не было? Отрезать <script>? Ещё что? Редактор tine_mce - как ворд, то есть теги, спец.символы и прочая ерунда - жду ответа!
Спасибо заранее! | |
|
|
|
|
|
|
|
для: Proger
(29.07.2007 в 00:34)
| | Можно, например для верности добавить в начало страницы тег <noscript> чтобы запретить выполнение скриптов на всей странице. А в переданных данных отфильтровать тег </noscript>
А использовать этот тег (<noscript>) для того, чтобы не вставили JS код в обработчики событий на странице. Хоте если очень хочеться их тоже можно повырезать с помощью PHP.
Пока все, других конструктивных предложений на данный момент не имею :) | |
|
|
|
|
|
|
|
для: testdriver
(29.07.2007 в 01:54)
| | Что-то и не верится что это безопасно... А всякие там кавычки? Спец. знаки? Как с ними быть? | |
|
|
|
|
|
|
|
для: testdriver
(29.07.2007 в 01:54)
| | Можно, например для верности добавить в начало страницы тег <noscript> чтобы запретить выполнение скриптов на всей странице.
<noscript> нужен для тех браузеров, где JavaScript не поддерживается. | |
|
|
|
|
|
|
|
для: Unkind
(29.07.2007 в 14:10)
| | Вот вот, то что между данными тегами же вроде показывается как раз когда яваскрипт вырублен или не поддерживается типа:
страница
<script>
.....
</script>
<noscript>
Чтобы посмотреть страницу нужно JS 300000000 =)
</noscript>
|
| |
|
|
|
|
|
|
|
для: Unkind
(29.07.2007 в 14:10)
| |
<html>
<noscript> // ставим этот тег
<head>
<script>
alert('Hello!!!'); // выводим сообщение
</script>
</head>
<body onLoad="document.location='mysite.ru'"> // пытаемся перекинуть страницу на другой URL
</body>
</html>
|
Unkind что то не пойму к чему вы это? т.е. хотите сказать что этот не помешает выполнить JS код в IE6, Opera или NS ?! ... тогда попробуйте | |
|
|
|
|
|
|
|
для: testdriver
(29.07.2007 в 16:19)
| | Даже пробовать не буду. Сделайте по правилам HTML раставление тегов - тогда попробую. | |
|
|
|
|
|
|
|
для: Unkind
(29.07.2007 в 17:19)
| | как же иногда бывает приятно поумничать, понимаю :) ... но дело ваше, мне мягко сказать все равно ... | |
|
|
|
|
|
|
|
для: testdriver
(29.07.2007 в 17:30)
| | Нет, почему сразу умничать. Не переношу код, когда там даже не закрывают парный тег. Да еще и пихают до <head>. Тут говорить о реакции браузера трудно.
Я привык делать все по правилам. Вы же пользуетесь какими-то особенностями браузеров при обработке грязного кода и считаете, что так и должно быть.
http://www.w3.org/TR/html4/interact/scripts.html 18.3.1 | |
|
|
|
|
|
|
|
для: Unkind
(29.07.2007 в 17:36)
| | да все таки лучше от этого отказаться :) решение все же было поспешным ...
Тогда другое предложение в тему, вырезать кроме <script></script> еще и теги слоев, чтоб не загружали в страницу, другие страницы из других источников. | |
|
|
|
|
|
|
|
для: Proger
(29.07.2007 в 00:34)
| | htmlspecialchars
?!? | |
|
|
|
|
|
|
|
для: Kusuk
(29.07.2007 в 13:19)
| | Это ЗАПРЕЩАЕТ HTML делая < > и пр. текстом! Браузер такой html не обработает! =) А надо чтобы пользователь фактически мог воять свой сайт, просто чтобы это было для меня безопасно, вот накидал код:
function clear_value($val) {
if ($val == '') { return ''; }
$val = preg_replace( "/<script/i" , '<script' , $val );
}
|
Только вот не датумкал, как сделать чтобы вырезало теги script и все содержимое между ними... | |
|
|
|
|
|
|
|
для: Proger
(29.07.2007 в 13:48)
| | js-код может появляться не только между тегами <script> но и внутри множества тегов, напрямую связанных с Document Object Model , к примеру, - в атрибутах onClick, onSumit, onChange. Короче, убивать только один тег - не выход.
Если Вы и вправду хотите безопасности - давать посетителю напрямую создавать html - нельзя. | |
|
|
|
|
|
|
|
для: Trianon
(29.07.2007 в 14:34)
| | =(((( Ну народ.ру же даёт, может и я смогу? ;) Главное это нужно знать чего отрезать! Или просто сделать список доступных тегов? А все остальное нафиг? Сделать например теги только с заданными атрибутами? Совсем никак что ли? Просто редактор html мне никак не получилось под BB коды заточить =( А код 200 кб, врятли думаю кто-нить мне будет его редактировать! | |
|
|
|
|
|
|
|
для: Proger
(29.07.2007 в 15:09)
| | Сам недавно парился по этому поводу, вот готовая библеотека. | |
|
|
|
|
|
|
|
для: JIEXA
(29.07.2007 в 19:35)
| | Очень интерестно, понять бы как использовать и было бы супер! Спасибо, посмотрю! | |
|
|
|
|
|
|
|
для: Proger
(29.07.2007 в 23:38)
| | Хм...так и не понял, неподскажите как её использовать? Я просто с классами не очень то орудую! | |
|
|
|