Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
Самоучитель MySQL 5. Авторы: Кузнецов М.В., Симдянов И.В. Программирование. Ступени успешной карьеры. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. C++. Мастер-класс в задачах и примерах. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Мой скрипт рассылает спам
 
 автор: Владимир55   (15.12.2007 в 23:30)   письмо автору
 
 

На сайте есть несколько десятков файлов с написанными мною рнр-кодами, которые предназначены для организации работы страниц и сбора статистики. Почтовых функций скрипт не имеет, но, тем не менее, приходится предположить, что он рассылает спам. Такая мысль приходит потому, что на root приходят сообщения
From: "Charlie Root"
Mail in local queue:
12 <jramire65@characterlink.net>
10 <jraleigh@bitcorp.net>
9 <jqyuehutmqluz@epilot.com>
4 <jqyay@quintiles.com>
3 <jrandallzzqn@kaplancollege.com>

Это длиннющий список совершенно незнакомых мне адресов. Кроме как моему скрипту, больше их генерировать некому. Техподдержка разводит руками...

Есть ли какой-то способ проверить vds антивирусом?

   
 
 автор: Faraon   (15.12.2007 в 23:50)   письмо автору
 
   для: Владимир55   (15.12.2007 в 23:30)
 

-

   
 
 автор: Trianon   (16.12.2007 в 00:27)   письмо автору
 
   для: Владимир55   (15.12.2007 в 23:30)
 

так это небось не Ваш скрипт, а Ваш сервер.
Или, как вариант, чужой скрипт, залитый на Ваш сервер...

   
 
 автор: Faraon   (16.12.2007 в 00:44)   письмо автору
 
   для: Владимир55   (15.12.2007 в 23:30)
 

Скорее всего сервер, если вы не наблюдали чужеродные скрипты.
Хотя многие хостинги не чисты

   
 
 автор: Владимир55   (16.12.2007 в 01:00)   письмо автору
 
   для: Faraon   (16.12.2007 в 00:44)
 

Логи дают массу сообщений типа:
Dec 14 22:49:04 sshd[90173]: Failed password for invalid user test from 203.82.65.252 port 47121 ssh2
Dec 14 22:49:12 sshd[90205]: Failed password for invalid user test from 203.82.65.252 port 48040 ssh2
Dec 14 22:49:16 sshd[90226]: Failed password for invalid user test from 203.82.65.252 port 49335 ssh2

Похоже, что кто-то ломился. Вошел ли, нет ли - неизвестно. Так что может быть скрипт чужой как-нибудь прополз. Но как его найти? На VDS прорва разных папок, и в каждой что-нибудь да есть...

   
 
 автор: RV   (16.12.2007 в 04:34)   письмо автору
 
   для: Владимир55   (16.12.2007 в 01:00)
 

например поиск по всем файлам слова mail

   
 
 автор: Владимир55   (16.12.2007 в 19:45)   письмо автору
 
   для: Владимир55   (16.12.2007 в 01:00)
 

Размышляю над тем, как подсунули вредоносный код на сайт. Есть несколько таких формочек ввода информации:

$f2 = '<form method="post">
<input type="text" name="pass">
<input type="submit" value="Ввести.">
</form>';
@$pass = $_POST['pass'];
if (!$pass)
    {
      echo "<br>$f2";
      die();        // Остановка скрипта
    }

В разных местах введенная информация обрабатывается по разному, но нигде нет никакой защиты на случай, если вместо текста введут какой-нибудь код.

Можно ли считать, что это "дыра" в сайте?
Как эту дыру залатать?

   
 
 автор: Faraon   (16.12.2007 в 19:52)   письмо автору
 
   для: Владимир55   (16.12.2007 в 19:45)
 

>В разных местах введенная информация обрабатывается по разному
Если при заносе в БД, используйте mysql_escape_string

   
 
 автор: Владимир55   (16.12.2007 в 20:02)   письмо автору
 
   для: Faraon   (16.12.2007 в 19:52)
 

Нет, в базу данных не заношу.

Через форму вводится или пароль доступа, или отзыв посетителя на содержание страницы, который записывается в текстовый файл и потом выводится при просмотре.

Нужно ли здесь принять какие-то меры?

   
 
 автор: Faraon   (16.12.2007 в 20:06)   письмо автору
 
   для: Владимир55   (16.12.2007 в 20:02)
 

Насчет текствого файла,думаю некчему,
смотря какие у вас требования к контексту файла

   
 
 автор: Владимир55   (16.12.2007 в 20:33)   письмо автору
 
   для: Faraon   (16.12.2007 в 20:06)
 

Да требований никаких нет - что один человек напишет, то другие прочитают. Может, поставить

$text = htmlspecialchars($text);

   
 
 автор: Trianon   (17.12.2007 в 00:59)   письмо автору
 
   для: Владимир55   (16.12.2007 в 20:33)
 

>Может, поставить
>$text = htmlspecialchars($text);

Если Вы это не поставите, то текстовый контент в браузер Вы выкинуть просто напросто не сможете.
Сможете лишь html-ный.
А если к тому же генерируемый пользователем текст сохраняется в файлах, чьи типы потом подбирает php-обработчик, то вот Вам и прямая дыра.

   
 
 автор: Владимир55   (17.12.2007 в 02:08)   письмо автору
 
   для: Trianon   (17.12.2007 в 00:59)
 

А где функцию htmlspecialchars надо поставить?

Сколько ни читал Самоучитель, её истинной сущности так и не понял. Ведь она не изменяет код, верно? Если ею обработать переменную непосредственно перед выводом в броузер (echo, print), то воспроизведется код, но исполнения этого кода не будет. А если текст обработать htmlspecialchars, а потом сохранить его в файле, предварительно приплюсовав к другому тексту, и уж после этого вывести в броузер, то код исполнится.

Или как?

   
 
 автор: Trianon   (17.12.2007 в 03:37)   письмо автору
 
   для: Владимир55   (17.12.2007 в 02:08)
 

Если излагать грубо и на пальцах...
В файлах Вы храните текст.
От пользователя принимаете тоже текст.
Пользователю собитраетесь показывать опять таки текст. Ну и элементы навигации - это уже html
Браузер не умеет показывать текст.
Браузер умеет показывать только html.
Элементы навигации уже в html - их преобразовывать не надо.
А вот текст - это не гипертекст, по своей сути это разные языки.
Поэтому перед тем как добавлять элементы навигации к тексту, этот текст нужно в html преобразовать.
Чем собственно вышеупомянутая функция (вкупе с nl2br) и занимается.
JS-код может быть встроен в теги html. В чистом (или plain, если по английски) тексте код появиться не может. В html из htmlspecialchars код не проходит, потому как эта функция преобразует к видимому тексту все символы, из которых можно составить теги.

   
 
 автор: mihdan   (16.12.2007 в 23:28)   письмо автору
 
   для: Владимир55   (15.12.2007 в 23:30)
 

Все просто - вам залили шел-скрипт через дыру в одном из скриптов

   
 
 автор: Владимир55   (17.12.2007 в 00:06)   письмо автору
 
   для: mihdan   (16.12.2007 в 23:28)
 

Я полагаю, что примерно так и есть.

Сейчас я выключил все свои сайты, а в системе протекает 45 процессов, потребляющих 270 Мбайт памяти! Их большая часть относится к апачу, но есть sh и даже mysqld...

И что со всем этим делать?

   
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования