Да права ничего тут не решат. Смотрите вирусы на компьютере и шеллы на сайте. Если есть шеллы - надо смотреть как их залили
Чтобы не делать все руками, можно использовать find,grep,sed в linux, то есть войти на сервер по ssh и там работать
Так проверять не стоит, блок не всегда берет высоту содержимого, поставьте лучше firebug например, потом правой кнопкой - инспектировать с помощью Firebug.
Если высота сайта фиксированная, можете поставить футеру position:absolute; и потом подровнять как надо с помощью top:400px;left:0 итд
Ну да, а потом опять чистить, опять взломы и так далее пока не надоест. Обновление CMS никак вам не гарантирует латание дыры. Чтобы кардинально решить проблему, дыру надо найти и закрыть. Тем более дыра может быть не в самой CMS, а в каком-либо стороннем скрипте о установке которого вы давно забыли. А чистка при умелом подходе занимает неболее 10 минут.
Это не имеет никакого отношения к теме---------- Post added 15-03-2013 at 16:38 ----------Допустим у вас на сайте нашлись вирусы. Вы их удачно почистили. Но надо выяснить каким образом они попали на сервер, тем более если у Вас закрыт фтп и прочее.
Обычно оставляют на сайте шелл скрипт php аля FilesMan, главное запомнить имя файла, если вы его нашли. После чистки сайта идем в логи сервера. Обычно они лежат в /var/www/http-logs для Debian, и /var/www/сайт/logs
В первом месте лежит обычно архивы gzip, во втором лог за сегодня. Сначала ищем по файлу за сегодня, потом по истории: Допустим шелл назывался topnews.php Выполянем команду
grep 'topnews.php' файл лога_access.log
Нашлась одна запись:
x.x.x.x - - [21/Feb/2013:08:20:15 +0000] "GET /engine/cache/system/topnews.php HTTP/1.0" 200 16198 "-" "Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.17 (KHTML, like Gecko) Chrome/24.0.1312.57 Safari/537.17"
x.x.x.x - IP нарушителя.
Почему одна? Потому что залили шелл этот с другого шелла и с другого IP, который потом самоликвидировали. Можно теперь поискать ходы по этому IP или поискать в логе записи раньше этой, к IP привязываться не стоит, тк его обычно меняют между действиями. Особое внимание обратить на загрузку файлов и регистрацию новых пользователе, которые были до этого. Возможно это поможет найти вам дырявое место.
Просмотреть какие страницы открывал пользователь. Если например видно много подряд запросов POST к файлу php, которого на сервере нет, значит это работали в шелл и надо смотреть какие страницы открывали после этих POST запросов, тк обычно это делают вставки в код сайта типа system($_GET['blbllb']), а потом для проверки открывают страницу пораженую. А сам шелл потом грохают.
Очень часто стали ставить скрытые ссылки на сайт. Обычно это делают через подгрузку ссылки с удаленного узла. То есть в шаблоне ссылки не будет, но на сайте она есть.
Как можно поискать на сайте данный код. Как правило он не закодирован и выполнен красиво, как код движка.
Ищем по содержимому всех файлов строки функций подгрузки удаленного файла, например file_get_contents
Как правило код, который подгружает ненужные ссылки содержит вам узел в закодированном или неявном виде
Типа file_get_contents(base64_decode("blalala"));
или например $u = base64_decode("blabla"); $v = file_get_contents($u); Итд
Конечно нужно понимать, что при поиске по файлам выйдет несколько результатов, в том числе коды бирж итд. Надо просто просмотреть куда идет обращение.
Как расшифровать что в этих каракулях base64
Например у Вас код
eval(base64_decode("blablabla"));
Заменяем eval на echo, получаем в итоге:
echo base64_decode("blablabla");
После него можно поставить exit; Чтобы не искать результат на сайте. Если в результате Вы видите опять тоже самое, значит надо делать по кругу. Конечно это самый простой способ, но для новичка пойдет:)
В настройках Apache должна стоят директива open_base_dir для каждого сайта отдельная, указывающая на дирректорию сайта
Самый простой вариант проверить наличие странных редиректов на сайте:
1. Чистим все куки в браузере по домену
2. Открываем яндекс и ищем в нем сайт, например по запросу домена
3. Переходим на сайт с Яндекса и смотрим наличие редиректов
Проверяем файл .htaccess на наличие длинных записей modrewrite проверяющих Юзерагент на mobi|mobile итд, список обычно большой, удаляем эти правила.
Если вы нашли вирус, но он прописался в тысячах файлов на сервере, делаем массовую замену по ssh, для этого:
1. Заходим на ssh
2. Делаем копию сайта в другой каталог на всякий пожарный
3. Составляем команду в shell
Например такую:
find . -name "*.php" -print0 | xargs -0 sed -i -e 's/eval(base64_decode("DQplcnJvcl9yDQp9"));//'
Общий синтаксис
find . -name "*.php" -print0 | xargs -0 sed -i -e 's/Сигнатура вируса//'
Сигнатуру берем в любом зараженном файле. В ней нужно заэкранировать символы регулярного выражения или заменить их символом "."
Для поиска шелл вставок в кодах, которые например не ищет айболит, делаем поиск по содержимому, например через mc по ssh:
1. system($_REQUEST
2. system(
Проверяем все файлы на error_reporting и смотрим нужный ли это файл
И еще много много нюансов, которые невозможно все описать:)
left:50%;
margin-left:-485px;
-458 - ширина:
А fixed чем не устраивает? Надо тогда больше информации:)
Смотря как вам нужно, если зафикстировать то:
position:fixed; top:100%; margin-top:-200px; left:0;
margin-top это высота блока, left поставить в зависимости от ширины блока ну и там margin-left:
Если внутри блока, то родителю relative, ему absolute и значения относительно родителя.