Этот баннер — требование Роскомнадзора для исполнения 152 ФЗ.
«На сайте осуществляется обработка файлов cookie, необходимых для работы сайта, а также для анализа использования сайта и улучшения предоставляемых сервисов с использованием метрической программы Яндекс.Метрика. Продолжая использовать сайт, вы даёте согласие с использованием данных технологий».
Политика конфиденциальности
|
|
|
Skip invalid tags and scripts in input
|
|||
|---|---|---|---|
|
#18+
Джентельмены, есть проблема: в некотором месте сайт должен принимать в себя кусок html текста. Есть ли ссылки на достойные решения, как почистить этот текст от скриптов и незакрытых тэгов? С максимальным учетом всех мелочей — например, специальным образом обрабатывается href атрибут у a тэга, чтобы там не было скрипта или он не исполнялся. Поиск по гуглу не дал хороших вариантов, хотя может быть я плохо искал. :-\ ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 14:37 |
|
||
|
Skip invalid tags and scripts in input
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, Кэр, Вы писали: Кэр>Джентельмены, есть проблема: в некотором месте сайт должен принимать в себя кусок html текста. Есть ли ссылки на достойные решения, как почистить этот текст от скриптов и незакрытых тэгов? С максимальным учетом всех мелочей — например, специальным образом обрабатывается href атрибут у a тэга, чтобы там не было скрипта или он не исполнялся. Кэр>Поиск по гуглу не дал хороших вариантов, хотя может быть я плохо искал. :-\ SGML reader, html грузится в XMLдокумент, потом с помощью XPATH все ваши запросы легко решаются.... << RSDN@Home 1.1.4 stable SR1 rev. 568>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 14:56 |
|
||
|
Skip invalid tags and scripts in input
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, mogadanez, Вы писали: M>Здравствуйте, Кэр, Вы писали: Кэр>>Джентельмены, есть проблема: в некотором месте сайт должен принимать в себя кусок html текста. Есть ли ссылки на достойные решения, как почистить этот текст от скриптов и незакрытых тэгов? С максимальным учетом всех мелочей — например, специальным образом обрабатывается href атрибут у a тэга, чтобы там не было скрипта или он не исполнялся. Кэр>>Поиск по гуглу не дал хороших вариантов, хотя может быть я плохо искал. :-\ M>SGML reader, html грузится в XMLдокумент, потом с помощью XPATH все ваши запросы легко решаются. Кроме исключения скриптов, я правильно понимаю? Или SgmlReader может понять, где скрипты и выкусить их? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 15:09 |
|
||
|
Skip invalid tags and scripts in input
|
|||
|---|---|---|---|
|
#18+
Кэр>Кроме исключения скриптов, я правильно понимаю? Или SgmlReader может понять, где скрипты и выкусить их? скрипт — это тег <Script> — тело скрипта — его InnerText. XmlNodes scripts = doc.SelectNodes( "//script" ); дальше в href — также получаем коллекцию тегов <a>и для каждого руками проверяем него атрибут hrefлибо можно сразу написать XPATH примерно так "//a[@href = '*javascript:*']"... << RSDN@Home 1.1.4 stable SR1 rev. 568>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 15:20 |
|
||
|
Skip invalid tags and scripts in input
|
|||
|---|---|---|---|
|
#18+
M> M>XmlNodes scripts = doc.SelectNodes( "//script" ); M> M>дальше в href — также получаем коллекцию тегов <a>и для каждого руками проверяем него атрибут hrefлибо можно сразу написать XPATH M>примерно так M>"//a[@href = '*javascript:*']" Это понятно. Также лихо я могу парсить html с помощью примерно таких regex'ов. Мне вот интересно именно выкусывание скриптов из любых каких-либо исполняемых мест html, чтобы не пришлось их с потом на лбу искать самостоятельно — должен же их был уже кто-то найти и описать :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 15:38 |
|
||
|
Skip invalid tags and scripts in input
|
|||
|---|---|---|---|
|
#18+
Кэр>Это понятно. Также лихо я могу парсить html с помощью примерно таких regex'ов. Мне вот интересно именно выкусывание скриптов из любых каких-либо исполняемых мест html, чтобы не пришлось их с потом на лбу искать самостоятельно — должен же их был уже кто-то найти и описать :) согласен с вами — прежде чем чтото писать надо проверить может уже все за нас написали давно :) из примеров реализации где можно просто идею посмореть( на вражеских языках они ): http://simon.incutio.com/archive/2003/02/23/safeHtmlChecker http://muffin.doit.org/docs/filter/NoCode.html — тут кстати из того что надо фильтровать — <applet> и <object> значятся по личной практике, я сам использовал эти регекспы когда-то, но отказался от них в пользу SGML reader'a, намного более удобно в использовании. примерно так это может выглядеть, если писать самому анализатор. foreach( XmlNode node in doc.Nodes ) // тут на самом деле бежим рекурсивно. но у нас псевдо код :) validateNode( node ); RunQueuedAction(); public void validateNode ( XmlNode node ) { Rule[] rules GetValidationRulesForNode( node ); // на основании типа ноды возвращаем правила проверки. причем одни и теже правила могут быть foreach( Rule r in rules ) { Action a = r.Validate(); if ( a != Action.DoNothing ) // примеры Action's - RemoveNodeAction, CleanUpAttibutesAction. QueueAction( a ); } }... << RSDN@Home 1.1.4 stable SR1 rev. 568>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 26.10.2006, 16:02 |
|
||
|
Skip invalid tags and scripts in input
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, mogadanez, Вы писали: Кэр>>Это понятно. Также лихо я могу парсить html с помощью примерно таких regex'ов. Мне вот интересно именно выкусывание скриптов из любых каких-либо исполняемых мест html, чтобы не пришлось их с потом на лбу искать самостоятельно — должен же их был уже кто-то найти и описать :) M>согласен с вами — прежде чем чтото писать надо проверить может уже все за нас написали давно :) M>из примеров реализации где можно просто идею посмореть( на вражеских языках они ): M>http://simon.incutio.com/archive/2003/02/23/safeHtmlChecker M>http://muffin.doit.org/docs/filter/NoCode.html — тут кстати из того что надо фильтровать — <applet> и <object> значятся M>по личной практике, я сам использовал эти регекспы когда-то, но отказался от них в пользу SGML reader'a, намного более удобно в использовании. M>примерно так это может выглядеть, если писать самому анализатор. M> M>foreach( XmlNode node in doc.Nodes ) // тут на самом деле бежим рекурсивно. но у нас псевдо код :) M> validateNode( node ); M>RunQueuedAction(); M>public void validateNode ( XmlNode node ) M>{ M> Rule[] rules GetValidationRulesForNode( node ); // на основании типа ноды возвращаем правила проверки. причем одни и теже правила могут быть M> foreach( Rule r in rules ) M> { M> Action a = r.Validate(); M> if ( a != Action.DoNothing ) // примеры Action's - RemoveNodeAction, CleanUpAttibutesAction. M> QueueAction( a ); M> } M>} M> Спасибо за ссылки. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 08:33 |
|
||
|
Skip invalid tags and scripts in input
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, mogadanez, Вы писали: Кэр>>Это понятно. Также лихо я могу парсить html с помощью примерно таких regex'ов. Мне вот интересно именно выкусывание скриптов из любых каких-либо исполняемых мест html, чтобы не пришлось их с потом на лбу искать самостоятельно — должен же их был уже кто-то найти и описать :) M>согласен с вами — прежде чем чтото писать надо проверить может уже все за нас написали давно :) M>из примеров реализации где можно просто идею посмореть( на вражеских языках они ): M>http://simon.incutio.com/archive/2003/02/23/safeHtmlChecker M>http://muffin.doit.org/docs/filter/NoCode.html — тут кстати из того что надо фильтровать — <applet> и <object> значятся Вот еще неплохая ссылка по теме: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dnpag2/html/paght000004.asp Вот никак не ожидал, что есть подобные способы хакнуть приложение: <img src="javascript:alert('hello');"> <img src="java script:alert('hello');"> <img src="java script:alert('hello');"> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 09:15 |
|
||
|
Skip invalid tags and scripts in input
|
|||
|---|---|---|---|
|
#18+
Кэр> Кэр><img src="javascript:alert('hello');"> Кэр><img src="java script:alert('hello');"> Кэр><img src="java script:alert('hello');"> Кэр> подобные штуки хорошо описаны в книге Защищенный код... << RSDN@Home 1.1.4 stable SR1 rev. 568>> ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 12:30 |
|
||
|
Skip invalid tags and scripts in input
|
|||
|---|---|---|---|
|
#18+
Здравствуйте, mogadanez, Вы писали: Кэр>> Кэр>><img src="javascript:alert('hello');"> Кэр>><img src="java script:alert('hello');"> Кэр>><img src="java script:alert('hello');"> Кэр>> M>подобные штуки хорошо описаны в книге Защищенный код Да, спасибо, думаю эту книгу стоит прочитать даже независимо от текущей проблемы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 27.10.2006, 12:52 |
|
||
|
|

start [/forum/topic.php?fid=18&msg=34083813&tid=1388152]: |
0ms |
get settings: |
7ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
53ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
44ms |
get tp. blocked users: |
2ms |
| others: | 206ms |
| total: | 344ms |

| 0 / 0 |
