Оказывается, MSIE7 весьма вольно относится к content-type, который передается ему средствами HTTP. Например:
1. Указываем content-type: text/plain. Передаем нечто HTML-образное. MSIE7 радостно воспринимает его как HTML со всеми вытекающими: теги не видны, скрипты исполняются.
2. Указываем content-type: image/gif. То же самое.
3. Указываем content-type: text/plain. Передаем GIF. Этот GIF отрисовывается.
Firefox, например, работает честно: если не может нарисовать картинку - ругается, а не начинает исполнять содержащиеся в ней скрипты.
1. Указываем content-type: text/plain. Передаем нечто HTML-образное. MSIE7 радостно воспринимает его как HTML со всеми вытекающими: теги не видны, скрипты исполняются.
2. Указываем content-type: image/gif. То же самое.
3. Указываем content-type: text/plain. Передаем GIF. Этот GIF отрисовывается.
Firefox, например, работает честно: если не может нарисовать картинку - ругается, а не начинает исполнять содержащиеся в ней скрипты.