Защита от Iframe и других уязвимостей. Защита от взлома.
Недавно я на себе испытал взлом сайта. Было залито множество страниц и перелинковок...
Как с этим бороться и как это делается?
Пишу кратко.
1) Нужно запретить запуск внешних сценариев PHP. Для этого нужно написать в .htaccess следующее:
php_value allow_url_include off
php_value allow_url_fopen off
|
Или в файл php.ini
register_globals = Off
allow_url_include = off
allow_url_fopen = off
|
В нашем случае основное это
allow_url_include = off
allow_url_fopen = off
|
Далее. Можно прописать javascript после
if (window.top !== window.self) {
document.write = "";
window.top.location = window.self.location;
setTimeout(function(){document.body.innerHTML='';},1);
window.self.onload=function(evt){
document.body.innerHTML='';};
} |
От автора последнего скрипта:
Повторяю: после открывающего тега "" вы ставите открывающий тег .
Здесь используется нехитрая логика: в коде мы проверяем, является ли наш документ окном верхнего уровня ил нет. Если не является, то, скорее всего, документ показан в iframe. В этом случае мы указываем окну реальный URL нашего документа. А перед этим мы очищаем документ на тот случай, если злодей, который наставил нам iframe, запретил выполнение кода при загрузке. |
Вот еще вариант скриптика:
function init() {
if (self.parent.frames.length != 0) {
self.parent.location = document.location;
}
....
<body onload="init();"> |
Или
<script language="javascript">
<!--
//Check Frames Page Script
//by Krazy Katz Productions
//Please keep this notice intact
var framespage="index.html" //This is the frames page for your page.
//No need for editing below here.
if (top.location==document.location){
top.location=framespage;
}else{
var parent_location=parent.location.href;
var str_beginning=parent_location.length-framespage.length;
if (parent_location.substring(str_beginning, parent_location.length)!=framespage){
parent.location=framespage;
}
}
//-->
</script> |
Что еще можно сделать? Защититься от подвешивания сервака от множественных запросов и ДОС атак... Но это уже другая история.
Ах да, и добавьте запрет на просмотр папок без индексного файла.
В .htaccess пишем:
Кто сталкивался? Помогло :)?
И еще. Воспользуйтесь goole caja :)
http://caja.appspot.com/