Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][PHP]SQL Injection i przerobienie skryptu, Przerobienie małego skryptu...
Dukov
post
Post #1





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

Ostrzeżenie: (0%)
-----


Hejka, spotkałem się ostatnio z nieprzyjemną sytuacją i straciłem calutką bazę danych, już to w zasadzie naprawiłem, tylko mam pewien problem, ktoś ma pomysł jak przerobić ten skrypt, żeby znów działał?
  1. function checkExists($login,$mail){
  2.  
  3. try{
  4. $conn = new PDO("mysql:host=localhost;dbname=wojtecki", 'root', '');
  5. $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
  6. $stmt = $conn->prepare("SELECT count(*) FROM users WHERE login = ':login'");
  7. $stmt->execute(array(':login' => $login));
  8. $row = $stmt->fetch();
  9. $result = $row[0];
  10.  
  11. $check;
  12.  
  13. if($result <> 1){
  14.  
  15. $check = true;
  16.  
  17. }
  18. else
  19. {
  20. return 0;
  21. }
  22. $stmt = $conn->prepare("SELECT count(*) FROM users WHERE mail =':mail'");
  23. $stmt->execute(array(':mail' => $mail));
  24. $row = $stmt->fetch();
  25. $result = $row[0];
  26.  
  27. if($result <> 1){
  28.  
  29. $check = true;
  30.  
  31. }
  32. else
  33. {
  34. return 0;
  35. }
  36.  
  37. if ($check == true) {
  38. return 1;
  39. }
  40. $conn = null;
  41.  
  42.  
  43. }
  44. catch(PDOException $e){
  45. $e ->getMessage();
  46. echo $e;
  47. }
  48.  
  49.  
  50. }


Wcześniej sprawdzal czy istnieje już taki mail albo login w bazie i zwracał zero, jeśli znalazł użytkownika, jeśli do zmiennej check dodawał 1 i ją zwracał. Teraz oczywiście nie działa.
Zmieniłem tylko te dwie linijki
  1. $stmt = $conn->prepare("SELECT count(*) FROM users WHERE login = ':login'");
  2. $stmt->execute(array(':login' => $login));


Oczywiście w sprawdzeniu maila też takie dwie linijki zmieniłem.

Ten post edytował Dukov 8.08.2017, 14:26:29
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Dukov
post
Post #2





Grupa: Zarejestrowani
Postów: 69
Pomógł: 0
Dołączył: 21.03.2017

Ostrzeżenie: (0%)
-----


Wiem, ale co to ma do rzeczy? Zapytania się dublują, to masz na myśli? Nie mogę dać OR, bo jeśli login jest prawdą, to nie sprawdzi czy mail też jest ok, poza tym ta funkcja jest delikatnie zmodyfikowaną funkcją logowania, w które można się logować albo mailem albo loginem. Stąd dwa warunki Choć mógłbym to w sumie zanegować albo jeszcze inaczej rozwiązać. Tak czy tak widzisz, ze skryptu na skrypt i tak jest jakiś postęp, coraz lepiej to idzie, na pewno może za 5 skryptem będe to robił jeszcze inaczej, dowiem się nowych rzeczy, napiszę kilka innych nabiorę doświadczenia i zrobię to lepiej. Tak jak już zawsze będę korzystał z bindowania zmiennych z post i get.

BTW to co teraz robię, to jest zupełnie coś innego, to o co kiedyś tutaj pytałem, to były 3 inne rzeczy i już dawno wylądowały w koszu, choć pewne wnioski z nich wyciągnąłem, już mam trochę dosyć tego, ale mam nadzieję, choć to doprowadzić do końca. Tak czy tak spoko, ze skrypty na skrypt będzie coraz lepiej (IMG:style_emoticons/default/wink.gif)


Ten post edytował Dukov 8.08.2017, 15:03:55
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 6.10.2025 - 20:26