На хостинге лежит сайт, через некоторое время в страничках заводятся вирусы. У меня на компе их заведомо нет. Разговор с сисадмином хостинга поставил меня в тупик совсем. Может я чего не допонимаю? pome (21:45) : Касперский не дает открыть сайт, почистите от вирусов периодически заливаю страницы без вирусов, проходить день и они снова там. Сделайте что-нибудь уже erigs ® (21:58) : да да. СДЕЛАЙТЕ чтонибудь. Пишите код php чисто. pome (22:00) : Код - мое дело, ваше - хостинг. Если я залил страницу без вируса - полагаю она так и должна лежать erigs ® (22:00) : у вас в коде ошибка. erigs ® (22:00) : через ошибки вирус и попадает на сайт. erigs ® (22:01) : + возможно у вас троян на компе. МЫ ПРЕДОСТАВЛЯЕМ ЧИСТЫЙ хостинг. У нас нет никаких механизмов изменения того, что вы заливаете. pome (22:01) : в чем ошибка? erigs ® (22:01) : их просто нет. erigs ® (22:01) : 22:02:55 pome: в чем ошибка? ИЩИТЕ! такое бывает. Мы в последнюю очередь вмешиваемся. erigs ® (22:02) : Ваш код - Вам проще должно быть найти. pome (22:02) : у меня нет троянов. И ошибок, боюсь, нет erigs ® (22:02) : ? уверены на 100 %? erigs ® (22:02) : если МЫ найдем ошибку вы нам заплатите? 1000 рублей за 1 час? erigs ® (22:03) : за 1 час поиска. Мы пошли искать тогда. erigs ® (22:03) : у нас хостится свыше 100 сайтов. ну, с каждым 20ым такое бывает. pome (22:03) : на 100% и вы не уверены что не в хостинге проблема erigs ® (22:03) : и ВСЕГДА ошибку находим в когде. erigs ® (22:03) : коде. erigs ® (22:04) : разговор неправильный. 1000 рублей в час - идет? и я бросаю свой вечерний ужин и иду искать. pome (22:04) : кушайте на здоровье
pome Если вы пишете код так же, как и форматируете свои сообщения, то скорее всего у вас действительно ошибка в коде. имхо
Вы не правы. Прежде, чем утверждать и тревожить админов (да и вообще, зачем попусту тыркать людей?), нужно проверить все возможные причины со своей стороны: 1) Провериться на трояны (не только одним антивирусом) 2) Сменить пароль на фтп и нигде его не сохранять на компе 3) Проверить код на наличие уязвимостей: a) SQL injections b) Php injections c) Filesystem injections (там, где include файлов) d) Global variables e) Null-byte Да и еще нужно посмотреть, может существует уязвимость есть в модуле загрузки файлов. Ошибок может быть куча. Винить хостера можно только в случае, если сайт тестировался на разные уязвимости и перепроверен много раз. Хотя даже и это не всегда помогает увидеть ошибку.
Ну что можно сказать, посмотрел, сайт имеет много ошибок.. На будущее, тем кто может допускать такие ошибки... 1. Такой метод, для проверки админ это или нет - не катит: PHP: <?php if ($_SESSION['usertype']!="admin") { echo ('<script type="text/javascript">'); echo ('window.location="http://www.zzzzzz.ru/index.php";'); echo ('</script>'); // echo "не админ"; } Т.к. ява-скрипт может быть просто отключен в браузере, и скрипт продолжит выполнение. Редирект лучше делать через функцию header('Location: url'), а также обязательно ставить в конце die(); 2. Никогда не давайте имя загружаемого файла, которое было от пользователя. Проверяйте тип файла, расширение, а лучше новое имя генерировать скриптом. В данном случае можно просто загрузить любой PHP-сценарий и выполнить его на сервере, т.е. сделать все что угодно: PHP: <?php $filename=$_FILES["filename"]["name"]; copy($_FILES["filename"]["tmp_name"],"uploaded/".$filename); 3. Такие конструкции не нужно делать перед помещением в SQL-запрос: PHP: <?php $msg = str_replace("'","'",$msg); $msg = str_replace('"',""",$msg); ... $query="INSERT INTO ".$table_name." VALUES ('".$insert_check."', '".$msg."');"; mysql_query ($query); ?> Вместо этого нужно использовать функцию mysql_real_escape_string() http://ru.php.net/mysql_real_escape_string А для вывода можно использовать: http://ru.php.net/htmlspecialchars http://ru.php.net/manual/ru/function.htmlentities.php Тщательно проверяйте свои скрипты на безопасность, и не вините хостера! Успехов!