| |
|
|
| | На сайте есть несколько десятков файлов с написанными мною рнр-кодами, которые предназначены для организации работы страниц и сбора статистики. Почтовых функций скрипт не имеет, но, тем не менее, приходится предположить, что он рассылает спам. Такая мысль приходит потому, что на 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 антивирусом? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(15.12.2007 в 23:30)
| | | - | |
| |
|
|
| |
|
|
| |
для: Владимир55
(15.12.2007 в 23:30)
| | | так это небось не Ваш скрипт, а Ваш сервер.
Или, как вариант, чужой скрипт, залитый на Ваш сервер... | |
| |
|
|
| |
|
|
| |
для: Владимир55
(15.12.2007 в 23:30)
| | | Скорее всего сервер, если вы не наблюдали чужеродные скрипты.
Хотя многие хостинги не чисты | |
| |
|
|
| |
|
|
| |
для: 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 прорва разных папок, и в каждой что-нибудь да есть... | |
| |
|
|
| |
|
|
| |
для: Владимир55
(16.12.2007 в 01:00)
| | | например поиск по всем файлам слова mail | |
| |
|
|
| |
|
|
| |
для: Владимир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(); // Остановка скрипта
}
|
В разных местах введенная информация обрабатывается по разному, но нигде нет никакой защиты на случай, если вместо текста введут какой-нибудь код.
Можно ли считать, что это "дыра" в сайте?
Как эту дыру залатать? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(16.12.2007 в 19:45)
| | | >В разных местах введенная информация обрабатывается по разному
Если при заносе в БД, используйте mysql_escape_string | |
| |
|
|
| |
|
|
| |
для: Faraon
(16.12.2007 в 19:52)
| | | Нет, в базу данных не заношу.
Через форму вводится или пароль доступа, или отзыв посетителя на содержание страницы, который записывается в текстовый файл и потом выводится при просмотре.
Нужно ли здесь принять какие-то меры? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(16.12.2007 в 20:02)
| | | Насчет текствого файла,думаю некчему,
смотря какие у вас требования к контексту файла | |
| |
|
|
| |
|
|
| |
для: Faraon
(16.12.2007 в 20:06)
| | | Да требований никаких нет - что один человек напишет, то другие прочитают. Может, поставить
$text = htmlspecialchars($text);
|
| |
| |
|
|
| |
|
|
| |
для: Владимир55
(16.12.2007 в 20:33)
| | | >Может, поставить
>$text = htmlspecialchars($text);
Если Вы это не поставите, то текстовый контент в браузер Вы выкинуть просто напросто не сможете.
Сможете лишь html-ный.
А если к тому же генерируемый пользователем текст сохраняется в файлах, чьи типы потом подбирает php-обработчик, то вот Вам и прямая дыра. | |
| |
|
|
| |
|
|
| |
для: Trianon
(17.12.2007 в 00:59)
| | | А где функцию htmlspecialchars надо поставить?
Сколько ни читал Самоучитель, её истинной сущности так и не понял. Ведь она не изменяет код, верно? Если ею обработать переменную непосредственно перед выводом в броузер (echo, print), то воспроизведется код, но исполнения этого кода не будет. А если текст обработать htmlspecialchars, а потом сохранить его в файле, предварительно приплюсовав к другому тексту, и уж после этого вывести в броузер, то код исполнится.
Или как? | |
| |
|
|
| |
|
|
| |
для: Владимир55
(17.12.2007 в 02:08)
| | | Если излагать грубо и на пальцах...
В файлах Вы храните текст.
От пользователя принимаете тоже текст.
Пользователю собитраетесь показывать опять таки текст. Ну и элементы навигации - это уже html
Браузер не умеет показывать текст.
Браузер умеет показывать только html.
Элементы навигации уже в html - их преобразовывать не надо.
А вот текст - это не гипертекст, по своей сути это разные языки.
Поэтому перед тем как добавлять элементы навигации к тексту, этот текст нужно в html преобразовать.
Чем собственно вышеупомянутая функция (вкупе с nl2br) и занимается.
JS-код может быть встроен в теги html. В чистом (или plain, если по английски) тексте код появиться не может. В html из htmlspecialchars код не проходит, потому как эта функция преобразует к видимому тексту все символы, из которых можно составить теги. | |
| |
|
|
| |
|
|
| |
для: Владимир55
(15.12.2007 в 23:30)
| | | Все просто - вам залили шел-скрипт через дыру в одном из скриптов | |
| |
|
|
| |
|
|
| |
для: mihdan
(16.12.2007 в 23:28)
| | | Я полагаю, что примерно так и есть.
Сейчас я выключил все свои сайты, а в системе протекает 45 процессов, потребляющих 270 Мбайт памяти! Их большая часть относится к апачу, но есть sh и даже mysqld...
И что со всем этим делать? | |
| |
|
|