Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Skip invalid tags and scripts in input / 10 сообщений из 10, страница 1 из 1
26.10.2006, 14:37
    #34083813
Кэр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Skip invalid tags and scripts in input
Джентельмены, есть проблема: в некотором месте сайт должен принимать в себя кусок html текста. Есть ли ссылки на достойные решения, как почистить этот текст от скриптов и незакрытых тэгов? С максимальным учетом всех мелочей — например, специальным образом обрабатывается href атрибут у a тэга, чтобы там не было скрипта или он не исполнялся.
Поиск по гуглу не дал хороших вариантов, хотя может быть я плохо искал. :-\
...
Рейтинг: 0 / 0
26.10.2006, 14:56
    #34083912
mogadanez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Skip invalid tags and scripts in input
Здравствуйте, Кэр, Вы писали:

Кэр>Джентельмены, есть проблема: в некотором месте сайт должен принимать в себя кусок html текста. Есть ли ссылки на достойные решения, как почистить этот текст от скриптов и незакрытых тэгов? С максимальным учетом всех мелочей — например, специальным образом обрабатывается href атрибут у a тэга, чтобы там не было скрипта или он не исполнялся.
Кэр>Поиск по гуглу не дал хороших вариантов, хотя может быть я плохо искал. :-\

SGML reader, html грузится в XMLдокумент, потом с помощью XPATH все ваши запросы легко решаются.... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
26.10.2006, 15:09
    #34083982
Кэр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Skip invalid tags and scripts in input
Здравствуйте, mogadanez, Вы писали:

M>Здравствуйте, Кэр, Вы писали:

Кэр>>Джентельмены, есть проблема: в некотором месте сайт должен принимать в себя кусок html текста. Есть ли ссылки на достойные решения, как почистить этот текст от скриптов и незакрытых тэгов? С максимальным учетом всех мелочей — например, специальным образом обрабатывается href атрибут у a тэга, чтобы там не было скрипта или он не исполнялся.
Кэр>>Поиск по гуглу не дал хороших вариантов, хотя может быть я плохо искал. :-\

M>SGML reader, html грузится в XMLдокумент, потом с помощью XPATH все ваши запросы легко решаются.

Кроме исключения скриптов, я правильно понимаю? Или SgmlReader может понять, где скрипты и выкусить их?
...
Рейтинг: 0 / 0
26.10.2006, 15:20
    #34084052
mogadanez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Skip invalid tags and scripts in input
Кэр>Кроме исключения скриптов, я правильно понимаю? Или SgmlReader может понять, где скрипты и выкусить их?

скрипт — это тег <Script> — тело скрипта — его InnerText.


XmlNodes scripts = doc.SelectNodes( "//script" );
дальше в href — также получаем коллекцию тегов <a>и для каждого руками проверяем него атрибут hrefлибо можно сразу написать XPATH
примерно так
"//a[@href = '*javascript:*']"... << RSDN@Home 1.1.4 stable SR1 rev. 568>>
...
Рейтинг: 0 / 0
26.10.2006, 15:38
    #34084154
Кэр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Skip invalid tags and scripts in input
M>
M>XmlNodes scripts = doc.SelectNodes( "//script" );
M>
M>дальше в href — также получаем коллекцию тегов <a>и для каждого руками проверяем него атрибут hrefлибо можно сразу написать XPATH
M>примерно так
M>"//a[@href = '*javascript:*']"

Это понятно. Также лихо я могу парсить html с помощью примерно таких regex'ов. Мне вот интересно именно выкусывание скриптов из любых каких-либо исполняемых мест html, чтобы не пришлось их с потом на лбу искать самостоятельно — должен же их был уже кто-то найти и описать :)
...
Рейтинг: 0 / 0
26.10.2006, 16:02
    #34084269
mogadanez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Skip invalid tags and scripts in input
Кэр>Это понятно. Также лихо я могу парсить 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>>
...
Рейтинг: 0 / 0
27.10.2006, 08:33
    #34085714
Кэр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Skip invalid tags and scripts in input
Здравствуйте, 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>

Спасибо за ссылки.
...
Рейтинг: 0 / 0
27.10.2006, 09:15
    #34085777
Кэр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Skip invalid tags and scripts in input
Здравствуйте, 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');">
...
Рейтинг: 0 / 0
27.10.2006, 12:30
    #34086564
mogadanez
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Skip invalid tags and scripts in input
Кэр>
Кэр><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>>
...
Рейтинг: 0 / 0
27.10.2006, 12:52
    #34086664
Кэр
Гость
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Skip invalid tags and scripts in input
Здравствуйте, mogadanez, Вы писали:

Кэр>>
Кэр>><img src="javascript:alert('hello');">
Кэр>><img src="java
script:alert('hello');">
Кэр>><img src="java
script:alert('hello');">
Кэр>>

M>подобные штуки хорошо описаны в книге Защищенный код

Да, спасибо, думаю эту книгу стоит прочитать даже независимо от текущей проблемы.
...
Рейтинг: 0 / 0
Форумы / ASP.NET [игнор отключен] [закрыт для гостей] / Skip invalid tags and scripts in input / 10 сообщений из 10, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]