Jak sprawdzić podatność aplikacji na ataki XXS i SQL-Injection ?

0

Chciałbym sprawdzić czy aplikacja jest podatna na ataki XSS i SQL-Injection. Czy znacie może jakieś narzędzia do tego, bo ręczne testowanie dużo czasu zajmie ?

0

Cześć,
masz tu linka do wikipedii: https://pl.wikipedia.org/wiki/SQL_injection
są tu przykłady, na które będą podatne strony/formularze/inne aplikacje bez zabezpieczeń na ataki typu sql injection.
Jednym ze sposobów zapobiegnięcia podatności na ten typ ataków jest użycie w swoim kodzie PDO.
Manual php dot. PDO: https://www.php.net/manual/en/book.pdo.php

0

Ręcznie testowanie to dużo? Szukasz tylko wszystkich odwołan do bazy danych, jak nie masz pdo to poprawiasz i tyle.

0

@KrisKros123: Załóżmy że takie mam zapytanie, w którym odwołuję się do id znajdującego się w adresie url. Funkcja urlencode zamienia znaki specjalne, więc nie powinno przejśc sql-injection, chociaż ta funkcja nie zamienia pojedynczych cudzysłowiów

   $idUser = urlencode($_GET['id']);
   $session = htmlspecialchars($_SESSION['user_id']);

        $sql = $this->conDatabase->ConnectDatabase()->prepare("SELECT * FROM user where user_id = :user_id");
        $sql->bindParam(':user_id',$idUser, PDO::PARAM_INT);
        $sql->bindParam(':id',$session, PDO::PARAM_INT);
        $sql->execute();
0

@veks21: Dobra szczerze to mnie ciekawi w jaki sposób zapisujesz id użytkownika, bo u mnie to jest tak że mam wygenerowany ciąg 8 znaków, który nie zawiera znaków specjalnych, małe duże litery i liczby. Ale to tylko wtedy gdzie jestem zalogowany i edytuję jakiegoś użytkownika w panelu. Id użytkownika zalogowanego przetrzymuję w sesji, także u mnie nie ma problemu z atakiem poprzez url. Sesja istnieje użytkownik zalogowany, jaki to user to wartość zmiennej sesji no i oczywiście uprawnienia użytkownika (do wyświetlenia danej strony w panelu) i pozamiatane, może ten sposób znalazłby jakieś zastosowanie u Ciebie, nie wiem. Jednakowoż dla niezalogowanego użytkownika (jak i zalogowanego haha), który przesyła jakieś id w adresie oraz zawiera ono pojedyncze cudzysłowie i inne znaki to PDO normalnie radzi sobie z takimi "rodzynkami", zresztą po to ono zostało stworzone. Ja tutaj nic nie widzę jak pobranie ze zmiennej globalnej GET id do zmiennej i wstawienie jej do zapytania wraz z PDO, czyli wszystko jest legit. urlencode w tym zastosowaniu widzę za zbędne, natomiast jest to moje zdanie.

1 użytkowników online, w tym zalogowanych: 0, gości: 1