HTML и CSS в URL, вызывающие 404 ошибки (User Agent = Trident / 4.0) - PullRequest
6 голосов
/ 04 октября 2009

Я получил около 404 с фрагментами кода (CSS, HTML и JavaScript) в URL.

Насколько я могу судить, пользователь во время сеанса отлично просматривает сайт - это сайт электронной коммерции, и затронутые пользователи кладут вещи в свою корзину и проверяют все в порядке и т. Д.

На некоторых страницах я вижу 404 ошибки рядом с, казалось бы, успешным отображением страницы. Я получаю ту же ошибку 404 каждый раз, когда отображается эта страница (в этом сеансе).

Пример зарегистрированной ошибки 404:

404;http://www.example.com/rrepeat: repeat-y;

На рассматриваемой странице имеется один совпадающий экземпляр (кроме первого "r"):

<td style="background-image: url(/i/lb_ccccccbrd.gif); background-repeat: repeat-y;">

Я проверил включенные файлы CSS, и ни у одного из них нет совпадений (и, вероятно, если бы они были, я бы получил 404 на всех страницах, которые включают файл CSS)

Я думал, что, возможно, это плагин для IE8, который просматривает страницу, пока пользователь просматривает ее, чтобы что-то кешировать - или, возможно, для более злых целей. Пользовательский агент для страниц и 404 (в этом сеансе) - это одно и то же [не знаете, будет ли плагин отображаться по-другому для самого браузера?]

Другие примеры:

/r/table&gt;&lt;/form&gt;&lt;/td&gt;&lt;td width= 
/r width=

/r alt= 

/rurn pair[1]; --&gt;</SPAN> --&gt;</SPAN>--&gt;</SPAN>function Set_Cookie( name, value, expires, path, domain, secure ) <SPAN style="color:red;font-weight:bold;background-color:yellow;">&lt;!--/ set time, it's in millisecondsvar today = new Date();today.setTime( today.getTime() );/*if the expires variable is set, make the correct expires time, the current script below will set it for x number of days, to make it for hours, delete * 24, for minutes, delete * 60 * 24if ( expires )<SPAN style="color:red;font-weight:bold;background-color:yellow;">&lt;!--expires = expires * 1000 * 60 * 60 * 24;--&gt;</SPAN>*/expires = (3650) * 1000 * 60 * 60 * 24;var expires_date = new Date( today.getTime() + (expires) );document.cookie = name +

Кажется, что все начинается с "r", который не является частью кода, а затем от фрагмента кода, непосредственно связанного с кодом для страницы.

Страница проходит w3c.org проверку HTML (так что я не думаю, что это, скажем, нелогичная цитата, если только у меня нет какого-то глупого javascript, нарушающего HTML !!)

Пользовательский агент всегда MSIE 8.0 или MSIE 7.0 и Trident / 4.0. (Я предполагаю, что MSIE 7.0 с Trident - это IE8 в режиме совместимости)

Я вижу только несколько случаев этого в день (менее 10 сеансов), тогда как я получаю сотни сеансов в день с User Agent, включая IE8 и Trident.

Спасибо.

Ответы [ 3 ]

1 голос
/ 04 октября 2009

Мне кажется, что вы имеете дело либо с уродливым пауком, либо с попыткой XSS атаки.

Если это происходит в небольших масштабах, лучше всего убедиться, что вы заблокировали свое приложение / сайт, чтобы такие атаки оставались безуспешными.

Следите за своими журналами. Если подобные вещи набирают частоту и / или изменяют направления атаки, вам лучше знать, куда направлены эти усилия, и реагировать соответствующим образом.

Наконец, идентификатор клиента "IE8 / Trident" не является чем-то особенным. В нем просто говорится, что клиент говорит, что он использует Internet Explorer 8 с использованием механизма разметки Trident (аналог Safari / WebKit или Mozilla / Gecko).

0 голосов
/ 17 марта 2011

(Trident / 4.0 - это то, что идентифицирует IE 8, даже если пользовательский агент говорит, что IE 7 - это IE 8, работающий в режиме совместимости.) Lookahead Downloader в IE 8 имеет причуду, которая влияет на URL, которые охватывают любой 4096-й байт. Полученный URL-адрес представляет собой конкатенацию строки, непосредственно предшествующей обрезке, и строки, следующей за ней. Похоже, что любые одинарные или двойные кавычки рассматриваются как разделители. если вы используете XHTML, нет практического способа избежать получения этих 404 ошибок от пользователей IE 8.

0 голосов
/ 16 марта 2010

У меня возникла та же проблема. В браузерах Trident 4.0 приложение неожиданно начало ссылаться на странные js-скрипты, т.е.

/ JS / jqu //% 3C [CDATA [VAR% 20Paginator_otherActivities% 20% = 20new% 20Paginator ();! Paginator_otherActivities.setUrl (;

Это не повлияет на работу пользователя, так как веб-сайт будет отображаться нормально. Мне удалось отследить проблему и повторно запустить ее на моем локальном сервере с той же самой ошибкой, которая заставила меня думать, что это не атака XSS.

Я запустил несколько тестов, и оказалось, что проблема в том, что приложение пыталось включить слишком много js файлов - когда я уменьшил это число, проблема перестала возникать.

Мне не удалось найти какую-либо информацию, если это ограничение введено механизмом верстки Trident, но я помню, что в IE раньше были ограничения на количество классов CSS, которые вы можете использовать на каждой странице, так что, возможно, это что-то делать с Microsoft, пытаясь перехитрить всех.

...