Strona 2 z 2 PierwszyPierwszy 12
Pokaż wyniki od 11 do 16 z 16

Wątek: Bezpieczeństwo a poradnik tworzenia gier

  1. #11
    Zarejestrowany
    Dołączył
    Dec 2007
    Posty
    131

    Domyślnie Bezpieczeństwo a poradnik tworzenia gier

    A mnie jeszcze dręczy możliwożć dodania złożliwego kodu do obrazka.
    Czy ktoż wie w ogole jak to ludzie robią?I jak się przed tym zabezpieczyć?
    Ostanio gdzież czytałem że tak usunęli baze danych jakiegoż dużego serwisu.

  2. #12
    Zarejestrowany
    Dołączył
    Feb 2008
    Posty
    103

    Domyślnie Bezpieczeństwo a poradnik tworzenia gier

    "Kod dołączono na końcu normalnego pliku graficznego wielkożci 1x1 piksela, który pomyżlnie przeszedł test bezpieczeństwa.
    Należy podkreżlić istotę problemu. Język PHP wykorzystuje się najczęsciej do tworzenia dynamicznych serwisów internetowych i w taki też sposób wyżwietlana jest grafika w serwisach przechowujących zdjęcia/obrazki. Jest generowana dynamicznie. Dlatego, gdy "zawirusowany" plik graficzny zacznie się ładować w oknie przeglądarki użytkownika, ukryty kod zostanie wykonany, powodując okreżlone działanie, przewidziane przez autora intruza.
    sens file_exist jako zabezpieczenie :zaciera: o kant d... potłuc takie zabezpieczenie .A dopisywać rzeczywiżcie mozna .Wystarczy otworzyć grafike w zwykłym Notepadzie++ i na końcu pliku pisać co sie chce , wyżwietlać sie będzie normalnie , nie wiem jak z wykonaniem kodu ale poknuje . Nie wiem czy grafa ma gdzież w nagłowku pliku zapisana sume kontrolną i porównać z rzeczywistą ale to pewnie też mozna ominąc.

  3. #13
    Zarejestrowany
    Dołączył
    Mar 2008
    Posty
    25

    Domyślnie Bezpieczeństwo a poradnik tworzenia gier

    No to jeszcze w prezencie dorzucę (na ładne oczy :jezyk: ) coż o SQL Injection

    Tworzymy bazę gra i tabele users według wzoru niżej:
    Nazwa Typ pola
    ------- ----------
    login Text
    haslo Text
    ranga INT
    Teraz tworzymy dwóch użytkowników(ranga "1" to admin) zapytaniem sql:
    Kod:
    insert into users (login, haslo, ranga) values (`admin`, `hasloadmina`, `1`); 
    insert into users (login, haslo, ranga) values (`gracz`, `haslogracza`, `0`);
    Teraz skrypt logowania- plik "login.php"
    Kod:
    <?php
    mysql_connect&#40;"host", "user", "hasło do bazy"&#41; or die &#40;"nie można połączyć się z MySql"&#41;; 
    mysql_select_db&#40;"gra"&#41; or die &#40;"nie można połączyć się z bazą danych"&#41;; 
    if&#40;$_post&#91;'login'&#93; && $_post&#91;'haslo'&#93;&#41; &#123; 
     $login =  $_post&#91;'login'&#93;; 
     $haslo = $_post&#91;'haslo'&#93;; 
    $zapytanie=mysql_query&#40;select ranga from users where login = "$login" and haslo = "$haslo"&#41;; 
    if &#40;$i = mysql_fetch_array&#40;$zapytanie&#41;&#41; &#123; 
    switch &#40;$i&#91;0&#93;&#41; &#123; 
    case 0&#58; 
    print "jesteż zwykłym użytkownikiem"; 
    brak; 
    case 1
    print "jesteż administratorem" 
    brak; 
    &#125; 
    &#125; else &#123; 
    print "błąd logowania"; 
    &#125; 
    &#125; else &#123; 
    print "<center><from action=\"login.php\" method=\"post\">\n"; 
    print "Login&#58; <inpunt type=\"text\" name\"login\"><br>\n"; 
    print "Hasło <inpunt type=\"text\" name\"haslo\"><br>\n"; 
    print "</from></center>\n"; 
    &#125; 
    ?>
    Teraz próbujemy się zalogować podając:
    1. Login: Admin || Hasło: hasloadmina
    2. Login: Gracz || Hasło: haslogracza
    I 3 próba
    Login: Admin" # || Hasło: bzduryfsafa

    Co się okazuje że:
    1 logujemy się jako admin
    2 logujemy się jako gracz
    3 I tu zdziwienie, logujemy się jako admin mimo iż podaliżmy błędne hasło

    Dlaczego tak jest ano w przypadku 1 i 2 zapytanie wygląda tak:
    select ranga from users where login = "admin" and haslo = "hasloadmina"
    lub tak:
    select ranga from users where login = "gracz" and haslo = "haslogracza"
    A w 3 przypadku mamy takie zapytanie
    select ranga from users where login = "admin" # " and haslo = "bzduryfsafa"
    Jak widać, skrypt zamknął warunek klauzuli where za pomocą cudzysłowu, który sam przekazałeż/ałaż do skryptu, a następnie za pomocą #, który W bazie MySQL jest znakiem komentarza, anulował resztę zapytania :zaciera: .
    Czyli zapytanie było równoznaczne z:
    Kod:
    select ranga from users where login = "admin"
    Tak samo można zrobić w grze z poradnika.

    Metoda zabezpieczenia??

    włączenie magic_quotes_gpc lub przepuszczenie zmiennych $login i $hasło przez stripslashes() lub addslashes() .


    Na podstawie książki Andrzeja Kierzkowskiego "PHP 5- tworzenie stron WWW"- Zobacz w księgarni Helion

    Ps.
    Do skutecznego przeprowadzenia tego typu ataku musimy mieć wyłączoną opcje magic_quotes_gpc = off w pliku php.ini bo będzie nam przeszkadzała w ataku dodając \ podobnie jak addslashes().
    Ps2. Coż w kodzie może być poknocone nie testowałem go :jezyk: .

  4. #14
    Programista
    Dołączył
    Dec 2007
    Posty
    346

    Domyślnie Bezpieczeństwo a poradnik tworzenia gier

    Zamiast addslashed() lepiej użyć funkcji mysql_escape_string() bądź mysql_real_escape_string() .
    Powrót z zaświatów ? ; )

  5. #15
    Zarejestrowany
    Dołączył
    Sep 2007
    Posty
    258

    Domyślnie Bezpieczeństwo a poradnik tworzenia gier

    Tan przykladzik jest identyczny jak w jednej książce.

  6. #16
    Zarejestrowany
    Dołączył
    Mar 2008
    Posty
    25

    Domyślnie Bezpieczeństwo a poradnik tworzenia gier

    Helid, ta - podobny, identycznym bym tego nie nazwał, przykład jest podobny ale opis już nie :jezyk: .

    Ale cóż nie zaszkodzi dopisać "na podstawie książki Andrzeja Kierzkowskiego "PHP 5- tworzenie stron WWW"" :lapa:

Strona 2 z 2 PierwszyPierwszy 12

Informacje o wątku

Użytkownicy przeglądający ten wątek

Aktualnie 1 użytkownik(ów) przegląda ten wątek. (0 zarejestrowany(ch) oraz 1 gości)

Podobne wątki

  1. Bezpieczeństwo Tworzonej Gry
    Przez mack w dziale Budowa gry via www
    Odpowiedzi: 12
    Ostatni post / autor: 31-05-2010, 11:33
  2. Bezpieczeństwo na arenie walk
    Przez Khulmar w dziale Poradniki do vallheru
    Odpowiedzi: 4
    Ostatni post / autor: 21-09-2009, 17:36
  3. Bezpieczeństwo
    Przez boosik01 w dziale PHP / MySql
    Odpowiedzi: 3
    Ostatni post / autor: 16-09-2009, 22:56
  4. PDO bezpieczeństwo
    Przez Speedy w dziale PHP / MySql
    Odpowiedzi: 6
    Ostatni post / autor: 12-08-2009, 11:34
  5. Bezpieczeństwo
    Przez Imperator_Edi w dziale PHP / MySql
    Odpowiedzi: 3
    Ostatni post / autor: 03-06-2009, 19:43

Zakładki

Uprawnienia umieszczania postów

  • Nie możesz zakładać nowych tematów
  • Nie możesz pisać wiadomości
  • Nie możesz dodawać załączników
  • Nie możesz edytować swoich postów
  •