• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Sql injection mybb

VPS Starter Arubacloud
+1 głos
477 wizyt
pytanie zadane 25 lipca 2015 w PHP przez Exec Użytkownik (510 p.)

 

Robię pewien skrypt w podstronie mybb, który wykorzystuje dane z formularza, a później sprawdza czy są one w bazie.
I teraz pojawia się pytanie czy ten kod jest odporny na sql injection? 
 

$login_ss = $_POST['login'];
$pass_ss = $_POST['password'];
$login_ss = htmlentities($login_ss, ENT_QUOTES, "UTF-8");
$pass_ss = htmlentities($pass_ss, ENT_QUOTES, "UTF-8");
$pass_ss = md5($pass_ss);
$pass_ss = $db->escape_string($pass_ss);
$login_ss = $db->escape_string($login_ss);
$checkquery_ss = $db->query("
SELECT pPass, pName, pID 
FROM Tabela
WHERE pName = '$login_ss' AND pPass = '$pass_ss'
LIMIT 1
");
$checkstatus_ss = mysqli_num_rows($checkquery_ss);
echo 'Status to: ' .$checkstatus_ss;

 

3 odpowiedzi

+2 głosów
odpowiedź 25 lipca 2015 przez efiku Szeryf (75,160 p.)
edycja 25 lipca 2015 przez efiku
 
Najlepsza

No to tak na szybko. 

  1. Nie htmlentities tylko poczytaj o filter_input
  2. MD5 jest słabe i po co escapujesz hasło? :D  Daj userowi możliwość tworzenia silnego hasła. 

Stosujemy password_hash / verify + algo Bcrypt: Tu masz przykład jak prosto się to implementuje: https://gist.github.com/efik/4192257619d5534e5e3f

 Nie wiem jak działa mybb, skoro na mysqli to binduj (jeśli Ci się uda) parametry dla loginu.


Jednakże skoro to jest login to ->

  1.  filtrujesz login, ( hasła nie )  
  2.  bindujesz i robisz zapytanie by pobralo login i hasło dla przefiltrowanego loginu 
  3.  jest user, to bierzesz przez password_verify hash pobrany z bazy i weryfikujesz z wprowadzonym przez  POST hasłem.
  4. Zgadza się to robisz to co uważasz dalej za stosowne.
komentarz 26 lipca 2015 przez Comandeer Guru (605,680 p.)

Co do htmlentities: polecam spojrzeć tu https://phpbestpractices.org/#sanitizing-html bo filter_var ma kilka problemów

+1 głos
odpowiedź 25 lipca 2015 przez _coder_ Gaduła (3,480 p.)
Plus za to że używasz funkcji htmlentities zamiast np. stripslashes. Wg mnie w Twoje zapytanie trudno byłoby 'wstrzyknąć' SQLa i jak dla mnie jest ok. Na przyszłość rozważ PDO, nie będziesz musiał martwić się o ten rodzaj ataku.
0 głosów
odpowiedź 25 lipca 2015 przez Exec Użytkownik (510 p.)
@_coder_, dzięki za odpowiedź.
Mógłby ktoś jeszcze to ocenić? :)

Podobne pytania

0 głosów
2 odpowiedzi 810 wizyt
0 głosów
0 odpowiedzi 254 wizyt
pytanie zadane 22 stycznia 2023 w Bezpieczeństwo, hacking przez niezalogowany
0 głosów
1 odpowiedź 702 wizyt
pytanie zadane 17 lutego 2021 w Algorytmy przez CSSoup Mądrala (6,460 p.)

93,079 zapytań

142,043 odpowiedzi

321,452 komentarzy

62,424 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj

Wprowadzenie do ITsec, tom 2

Można już zamawiać tom 2 książki "Wprowadzenie do bezpieczeństwa IT" - będzie to około 650 stron wiedzy o ITsec (17 rozdziałów, 14 autorów, kolorowy druk).

Planowana premiera: 30.09.2024, zaś planowana wysyłka nastąpi w drugim tygodniu października 2024.

Warto preorderować, tym bardziej, iż mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy dodatkowe 15% zniżki! Dziękujemy zaprzyjaźnionej ekipie Sekuraka za kod dla naszej Społeczności!

...