PDA

Просмотр полной версии : Функция expression()


Algol
23.07.2004, 15:16
Суть проблемы:
При нектором XSS используется функция expression примерно таким образом
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Исходный код </td></tr><tr><td id="CODE"><a href="mailto:bill@microsoft.com" style=top:expression(alert())>[/QUOTE]<span id='postcolor'>
Все прекрасно работает, но скрипт срабатывает при каждой прорисовке страницы, что конечно очень нежелательно.
Вопрос:
1)Есть ли такой атрибут CSS, который просчитывается только ОДИН раз ?
2)Возможно ли из скрипта удалить сам атрибут style из текущего тега? Иными словами, как из скрипта обратится к тегу-хозяину

Algol
23.07.2004, 15:44
Впрочем на второй вопрос уже сам нашел ответ: функция this возвращает ссылку на текущий тег. Однако при этом скрипт не моежт удалить сам себя во время исполнения (причину не знаю, выдается сообщение &quot;Член группы не найден&quot;). Но тут есть обходной маневр. Вот такая конструкция срабатывает ровно один раз:
</span><table border="0" align="center" width="95%" cellpadding="3" cellspacing="1"><tr><td>Исходный код </td></tr><tr><td id="CODE"><a href="mailto:bill@microsoft.com" sss="alert();this.sss=null"
style="top:expression(eval(this.sss))">[/QUOTE]<span id='postcolor'>

JazzzSummerMan
29.07.2004, 18:53
спасибо, что поделился разработкой, полезная вещь)