Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP][MYSQL]Panel logowania php i mysql, Proszę o sprawdzenie lub próbę włamania :)
redelek
post
Post #1





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Witam,

Jak każdy początkujący pomimo dużej ilości dostępnych skryptów naskrobałem coś sam.
Nie ma to wyglądu bardziej chodzi mi o kod i bezpieczeństwo.

W wolnej chwili jeśli możecie zobaczcie pliki które tu przedstawię i panel działający na stronie. Jedna serdeczna prośba jeśli komuś się uda włamać to nie rozwalajcie bazy danych , ani mojego virtualnego serwera dobrze.

Logowanie do strony

plik login.php

  1. <?php
  2. if(isset($_POST['d56b699830e77ba53855679cb1d252da'])) {
  3. $polacz = @mysql_connect('localhost', 'root', '') or die ('Problemy !!');
  4. mysql_select_db('login');
  5. $zapytanie= "SELECT id, uzytkownik, haslo FROM user".
  6. " WHERE uzytkownik = '".$_POST['f_uzytkownik']."'".
  7. " AND haslo = '".md5($_POST['f_haslo'])."'; ";
  8. //echo $zapytanie.'<br>';
  9. $wynik = mysql_query($zapytanie)
  10. or die('Błąd zapytania do MySQL :(!!!!!!!');
  11.  
  12. if (mysql_num_rows($wynik) == 1) {
  13. $_SESSION['uzytkownik'] = $_POST['f_uzytkownik'];
  14. $_SESSION['stan'] = '1';
  15. $data_log=date('Y-m-d H:i:s');
  16. //echo "Zostaniesz przekierowany na oryginalna strone ktora wybrales...<br> ";
  17. $zapytanie="UPDATE user SET data_log='".$data_log."'"." WHERE uzytkownik='".$_POST['f_uzytkownik']."'; ";
  18. mysql_query($zapytanie);
  19. header("Location: adm/index.php");
  20.  
  21. }else{
  22.  
  23. echo "<a href=\"login.php\" style=\"text-decoration:none;\">Dane nieprawidłowe.
  24.  Zapisz na kartce i policz do 10 ... POPRAW ...</a>";
  25. }
  26. }else{
  27.  
  28. echo "<form action=\"login.php\" method=\"post\" enctype=\"multipart/form-data\" name=\"login_users\" >
  29. Uzytkownik: <input maxlength=\"50\" size=\"50\" name=\"f_uzytkownik\" type=\"text\" /><br />
  30. Hasło: <input size=\"20\" maxlength=\"12\" name=\"f_haslo\" type=\"password\" /><br />
  31. <input type=\"submit\" value=\"Zaloguj się\" name=\"d56b699830e77ba53855679cb1d252da\" /><br />
  32. </form>";
  33. }
  34.  
  35. ?>


Plik funkcji lib.php wiem, że funkcje służą do innych celów, ale to początek.
  1. <?php
  2. //sprawdz_login();
  3. function sprawdz_login(){
  4.  
  5. If (($_SESSION['stan'] == '1') && ($_SESSION['uzytkownik'] > '')){
  6. echo "OK<br>";
  7. echo "Witaj <b>".$_SESSION['uzytkownik']."</b> <a href='index.php?wyloguj=tak'>Wyloguj się</a><br />";
  8. //echo "<br>Jesteś na stronie Administracyjnej";
  9. }else{
  10. if($_SESSION["zalogowany"]==0){
  11. echo "Nie masz dostępu do tej części witryny. <a href='../index.php'>Zaloguj się</a></body></html>"; 
  12. exit();}
  13. }
  14. if($_GET["wyloguj"]=="tak"){$_SESSION["stan"]=0;
  15. echo "Zostałeś wylogowany z serwisu";
  16. //exit();
  17. header("Location: ../index.php");
  18.  
  19. }
  20. }
  21. ?>


Pliki ze stronami na których już są tajne dane (index.php i rejestracja.php )

  1. <?php
  2. require("lib.php");
  3. sprawdz_login();
  4. ?>
  5. <a href="opis.php">Opis</a><br />
  6. <a href="linki.php">Linki</a><br />
  7. <a href="rejestracja.php">Rejestracja</a><br />


Plik Rejestracja.php

  1. <?php
  2. require("lib.php");
  3. sprawdz_login();
  4.  
  5. echo "<font color=\"blue\"><center>STRONA Rejestracji użytkownika</center></font><br />";
  6.  
  7. if(isset($_POST['upload']))
  8. {
  9. $imie=$_POST['f_imie'];
  10. $nazwisko=$_POST['f_nazwisko'];
  11. $e_mail=$_POST['f_email'];
  12. $uzytkownik=$_POST['f_uzytkownik'];
  13. $haslo=md5($_POST['f_haslo']);
  14. $tel_kontaktowy=$_POST['f_telkontaktowy'];
  15. $data_rej=date('Y-m-d H:i:s');
  16. $status='AKTYWNY';
  17. // łączymy się z bazą
  18. $polacz = @mysql_connect('localhost', 'root', '') or die ('Problemy !!');
  19. mysql_select_db('login');
  20. {
  21. $uzytkownik = addslashes($uzytkownik);
  22. }
  23.  
  24. $query = "INSERT INTO user (imie, nazwisko, e_mail, uzytkownik, haslo, tel_kontaktowy, data_rej, data_l
    o
  25. , status ) ".
  26.  "VALUES ('$imie', '$nazwisko', '$e_mail', '$uzytkownik', '$haslo', '$tel_kontaktowy','$data_rej','$data_rej', '$status')";
  27.  
  28. mysql_query($query) or die('Błąd dodawania rekordu :( Spróbuj ponownie');
  29. //include 'include/DB_close.php';//*/
  30. //header("Location: index.php");
  31. echo "Użytkownik <b>$uzytkownik</b> został dodany do bazy.<br />".
  32. " Kliknij <b>Wyloguj</b> by przetestować nowe konto..<br />";
  33. echo "<a href=\"index.php\">Strona główna Admina</a>";
  34. }
  35. ?>
  36. <form action="rejestracja.php" method="post" enctype="multipart/form-data" name="uploadform">
  37. Imię: <input maxlength="50" size="50" name="f_imie" type="text" /> <br />
  38. Nazwisko: <input maxlength="50" size="50" name="f_nazwisko" type="text" /><br />
  39. E-mail: <input maxlength="50" size="50" name="f_email" type="text" /><br />
  40. Użytkownik: <input maxlength="50" size="50" name="f_uzytkownik" type="text" /><br />
  41. Hasło: <input maxlength="50" size="50" name="f_haslo" type="text" /><br />
  42. Tel. kontaktowy: <input maxlength="50" size="50" name="f_telkontaktowy" type="text" /><br />
  43. <input value="Zarejestruj się ..." name="upload" type="submit" />
  44. </form><br />
  45. <a href="index.php">Strona główna Admina</a>


Całość można można potestować na Strona skryptu
użytkownik : test
hasło: test

Bardzo bym prosił o informację, czy jest on coś wart i czy drobne zmiany i będzie dobry.
Będę bardzo zobowiązany za sugestię i pomysły oraz pokazanie mi błędów ( ewentualny kod włamania (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) ).
Nie oceniajcie wyglądu bo nie o to mi chodzi. Jest to stan bardzo surowy graficznie , chodzi o KOD.

Proszę o nie karcenie mnie zbyt mocno bo się potnę (IMG:http://forum.php.pl/style_emoticons/default/smile.gif)

Pozdrawiam
Redelek

Ten post edytował redelek 30.06.2008, 13:56:53
Go to the top of the page
+Quote Post
Shili
post
Post #2





Grupa: Zarejestrowani
Postów: 1 085
Pomógł: 231
Dołączył: 12.05.2008

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


  1. <?php
  2. $zapytanie= "SELECT id, uzytkownik, haslo FROM user".
  3. " WHERE uzytkownik = '".$_POST['f_uzytkownik']."'".
  4. " AND haslo = '".md5($_POST['f_haslo'])."'; ";
  5. ?>

Radzę kodować tak, żeby nie opierać się na obecności magic_quotes. Te nie zawsze i nie wszędzie są włączone.
To samo na rejestracji - nie filtrujesz w ogóle danych pochodzących od użytkownika! Zawsze trzeba je filtrować.

Sam użytkownik addslashowany nie wystarczy, namieszać można też w emailu, albo w numerze telefonu.
Na marginesie, polecam nie addslashes, a dedykowaną pod mysql funkcję mysql_real_escape_string.

Ten post edytował Shili 30.06.2008, 14:08:48
Go to the top of the page
+Quote Post
redelek
post
Post #3





Grupa: Zarejestrowani
Postów: 658
Pomógł: 37
Dołączył: 4.06.2005
Skąd: Wawa

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


Cytat(Shili @ 30.06.2008, 13:07:55 ) *
Radzę kodować tak, żeby nie opierać się na obecności magic_quotes. Te nie zawsze i nie wszędzie są włączone.
To samo na rejestracji - nie filtrujesz w ogóle danych pochodzących od użytkownika! Zawsze trzeba je filtrować.

Sam użytkownik addslashowany nie wystarczy, namieszać można też w emailu, albo w numerze telefonu.
Na marginesie, polecam nie addslashes, a dedykowaną pod mysql funkcję mysql_real_escape_string.


Oki dzięki czytam i już patrzę
Go to the top of the page
+Quote Post
Zidane
post
Post #4





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 8.08.2008
Skąd: Warszawa

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


Witam, jestem n00bkiem i jak wszystkie pliczki skopiuję na serwer to jak się próbuję rejestrować to wyskakuje mi napis "Problemy (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) !" Proszę o pomoc, myślę że to jest związane z tym

CODE
// łączymy się z bazą

$polacz = @mysql_connect('localhost', 'root', '') or die ('Problemy (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ');

mysql_select_db('login');


PS Przepraszam jak coś za odkop tematu

Ten post edytował Zidane 10.08.2008, 14:10:17
Go to the top of the page
+Quote Post
peter13135
post
Post #5





Grupa: Zarejestrowani
Postów: 1 447
Pomógł: 191
Dołączył: 26.03.2008

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


$polacz = @mysql_connect('host bazy danych', 'uzytkownik bazy danych', 'haslo bazy danych') or die ('Problemy (IMG:http://forum.php.pl/style_emoticons/default/exclamation.gif) ');
w miejsce uzytkownik bazy danych musisz wstawić nazwe uzytkownika bazy danych rzeczywistego, tak samo z haslem i hostem
Go to the top of the page
+Quote Post
Zidane
post
Post #6





Grupa: Zarejestrowani
Postów: 47
Pomógł: 1
Dołączył: 8.08.2008
Skąd: Warszawa

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


No dzieki, super ale teraz mam następny błąd: "Błąd dodawania rekordu (IMG:http://forum.php.pl/style_emoticons/default/sad.gif) Spróbuj ponownie" a zresztą sam sprawdź, www.zidane5.yoyo.pl

//Edit pomoże mi ktoś?

Ten post edytował Zidane 11.08.2008, 14:30:32
Go to the top of the page
+Quote Post

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: 27.09.2025 - 16:18