Strona została zhackowana - jak się zabezpieczyć?

0

Witam

Strona znajomego została zhackowana, był to atak SQL Injection, mam pytanie co teraz dalej, na co zwrócić uwagę?

W haśle jak i loginie były kodowane apostrofy poprzez mysql_escape_string(), jednak chyba to nie wystarczyło, jak jeszcze się zabezpieczyć?

0

Używać PDO będzie najprościej, jak ktoś sobie nie zdaje sprawy, że requesty GET to też dane od użytkownika, nie tylko pola formularza.

Oraz info: http://stackoverflow.com/questions/3665572/mysql-escape-string-vs-mysql-real-escape-string

0
dzek69 napisał(a):

Używać PDO będzie najprościej, jak ktoś sobie nie zdaje sprawy, że requesty GET to też dane od użytkownika, nie tylko pola formularza.

Oraz info: http://stackoverflow.com/questions/3665572/mysql-escape-string-vs-mysql-real-escape-string

Może mi Kolega przybliżyć o co chodzi w tym zdaniu: "requesty GET to też dane od użytkownika" ?

Proszę mi powiedzieć czy ten kod nie jest błędny?

$login = mysql_escape_string($_POST['login']);
$password = mysql_escape_string($_POST['password']);
$ap->login($_POST['login'],$_POST['password']);

Metoda login po prostu wykonuje zapytanie SQL podstawiając wartości podane na wejściu.

0

Ehm... Zawsze myślałem że po to wydziela się model żeby sam pilnował komunikacji z bazą danych i sensownego escapowania apostrofów...

0
Demonical Monk napisał(a):

Ehm... Zawsze myślałem że po to wydziela się model żeby sam pilnował komunikacji z bazą danych i sensownego escapowania apostrofów...

Mi jedynie chodzi o to, czy nie powinno być tak:

$login = mysql_escape_string($_POST['login']);
$password = mysql_escape_string($_POST['password']);
$ap->login($login,$password);

?

0

To ja inaczej - nie tylko formularz [logowania] może być podatny na atak.
Skoro nie macie logów, które pomogą odnaleźć przyczynę problemu, to daj linka do strony, to się znajdzie tego Waszego SQL Injection.

0

A

 addslashes() + htmlspecialchars()

zda egzamin czy też nie ?

0
Komptronic napisał(a):

Proszę mi powiedzieć czy ten kod nie jest błędny?

$login = mysql_escape_string($_POST['login']);
$password = mysql_escape_string($_POST['password']);
$ap->login($_POST['login'],$_POST['password']);

a to chyba żart jest? używasz escape do zmiennej A i B, a w metodę wsadzasz zmienne C i D. gdzie tu logika?

[edit] kod ze złego posta wepchnąłem

0

A jak obronić się przed SQL Injection z połączeniem z MySQLi ?? Czy

 mysql_escape_string

w tym wypadku to też dobre rozwiązanie ?

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