[php] - jak się zabezpieczyć przed włamaniem

Moje strony www napisałem w php. Ostatnio miałem włamanie - do pliku index.php na końcu dokleił się złośliwy kod w javascript, który otwierał niewidoczną ramkę iframe kierującą na stronę z robalami. W ten sposób oglądający moją stronę zarażali się jakimś paskudztwem. Złośliwy kod już usunąłem, a moje pytanie brzmi:

Jaką lukę w php wykorzystali włamywacze aby w pliku index.php dopisać złośliwy kod??? Dodam, że na pewno nie dostali się przez FTP bo hasło znam tylko ja (tak mi się wydaje). Mam na stronie różne elementy np. księgę gości - może w jakiś sposób wykorzystali wysyłkę danych z formularza aby zmodyfikować stronę index.php. Czy to jest możliwe? No i najważniejsze pytanie - jak się przed tym zabezpieczyć?

A czy to jest jakiś CMS ? mi się zdaje ,że ktoś przez FTP się włamał zmień hasło na truden np. %JH*kk9K( :smiley:

To nie jest żaden CMS tylko strony napisane ręcznie w php i HTML. Szukałem w forum i natrafiłem na register_globals - na moim serwerze jest ON. Ale czy to jest jakiś problem??? A co się stanie jak bym to zmienił na OFF - czy może się zdarzyć, że strona przestanie działać??

Jeśli napisałeś skrypt, który korzysta z register globals to po wyłączenieu nie będzie działał. Powinieneś bardzo szybko zrezygnować z tego. Register globals otwiera furtkę potencjalnym włamywaczom. Powinno być wyłączone, a skrypt powinien korzystać z tablic superglobalnych zamiast ze zmiennych register globals.

do tego pozostaje zabezpieczenie stron przed możliwością wysłania kodu html i java script, funkcje takie jak strip_tags() i htmlspecialchars() poczytaj też o Cross Site Scripting

Jeżeli używasz bazy danych, każde dane filtruj

$txt = strip_tags(mysql_escape_string($txt));

Zablokujesz w ten sposób dopisywanie się do zapytań :wink:

http://www.room-303.com/blog/wp-content … je-www.pdf