Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Skrypt logowania na sesjach :)
Forum PHP.pl > Forum > PHP
adeq_PL
witam!! Pewno juz wiele razy byl poruszany temat logowania w php, ale ja jestem tu nowy troche juz wczesniej grzebalem po forum i mam taki problem.

Na wlasne potrzeby stworzylem nastepujacy formularz logowania oparty o sesje.

Składa sie ze standardowej bazy mysql w ktorej stworzona jest tabela adimin oraz z trzech plikow:

conf.php:

  1. <?
  2. mysql_connect($host,$user,$pass)
  3.      or die (' ');
  4.  
  5. mysql_select_db(nazwa_bazy);
  6. ?>


ktory hosta, usera i password pobiera za pomoca explode z osobnego pliku php:
  1. <? nazwa_hosta | user | password  ?>


kolejny plik to admin.php:

  1. <?
  2. include_once('katalog/logadm.php');
  3. include_once('katalog/conf_adm.php');
  4.  
  5.  
  6.  
  7.  if($_SESSION['logadm'] == 'ok') { ?>
  8.  
  9.    <BR><P class=title><B>Witaj w panelu administracyjnym</B></P>
  10.  
  11. <?php } else { ?>
  12.  
  13.    <BR><P class=title><B>Witaj w panelu administracyjnym - zaloguj się aby uzyskać pełen dostęp do serwisu</B></P>
  14.    
  15. <?php } ?>
  16.  
  17. <?php
  18.    echo logadm();
  19. ?>


oraz logadm.php:

  1. <?php
  2. include('conf_adm.php');
  3.  
  4.  
  5.   if(isset($_POST['logadm'])) {
  6.  
  7.   $dane = @mysql_query('SELECT login, password FROM admin WHERE login = "'.$_POST['loginadm'].'" AND password= "'.$_POST['passadm'].'"') or die(mysql_error()); 
  8.     
  9.     
  10.     if(mysql_num_rows($dane) == 1) {
  11.         $_SESSION['logadm'] = 'ok';
  12.     } 
  13.         else {
  14.         $_SESSION['logadm'] = '<P class=blad>Błędny login lub hasło!';
  15.     }
  16.     
  17.     unset($_POST['logadm']);
  18.   }
  19.  
  20.  
  21.  
  22.   if(isset($_POST['unlogadm'])) {
  23.     
  24.     unset($_SESSION['logadm']);
  25.     
  26.     unset($_POST['unloaddm']);
  27.   }
  28.  
  29.  
  30.  
  31.  
  32. function logadm() {
  33.  
  34.     
  35.     if($_SESSION['logadm'] == 'ok') {
  36.  
  37.  
  38.     $string  = '<form action="'.getenv(REQUEST_URI).'" method="post">';
  39.         $string .= '    <input type="submit" name="unlogadm" value="Wyloguj" />';
  40.        $string .= '</form>';
  41.        
  42.     } 
  43.  
  44.  
  45.         else {
  46.     $string  = '<form action="'.getenv(REQUEST_URI).'" method="post">';
  47.        $string .= '    <ul style="list-style-type: none; margin: 0; padding: 0;">';
  48.        
  49.  
  50.  
  51.        if(isset($_SESSION['logadm']))
  52.  
  53.         $string .= '<li>'.$_SESSION['logadm'].'</li>';
  54.        $string .= '<li><P class=normal>Login: <input type="text" name="loginadm" style="width: 130px"/></li>';
  55.        $string .= '<li><P class=normal>Haslo: <input type="password" name="passadm" style="width: 130px"/></P></li>';
  56.        $string .= '<li><input type="submit" name="logadm" value="Logowanie" /></li>';
  57.        $string .= '</ul>';
  58.        $string .= '<BR><TABLE align=center class=haslo CELLPADDING="0" CELLSPACING="0"><TR><TD  ALIGN=center>';
  59.         $string .= '<a href=admin_instal_adm.php>instalacja bazy</A>&nbsp;';
  60.        $string .= '</TD><TD ALIGN=center><P class="title">|</P>';
  61.     $string .= '</TD><TD ALIGN=center>&nbsp;<a href=admin_instal_adm.php>help</A>';
  62.     $string .= '</TD></TR></TABLE>';
  63.     $string .= '</form>';
  64.  
  65.  
  66.  
  67.         }
  68.     
  69.     return $string;
  70.     
  71. }
  72.  
  73.  
  74. ?>


pliki conf.php, logadm oraz ten z hostem, adminem i haslem umiescilem w katalogu chronionym przez .htaccess

Problem polega na tym czy mechnizm jaki stworzylem oprze sie atakom hakershitow i czy da sie zastosowac jeszcze jakies mechnizmy, zeby wzmocnic obrone?? Jesli znajdziecie jakies dziury to prosze o sygnaly i zgloszenia.

Z gory dzieki za lawinowo odsylane odpowiedzi winksmiley.jpg
andrzejb
  1. <?php
  2. WHERE login = "'.$_POST['loginadm'].'" AND pas
  3. ?>


poczytaj o sql injection naarzasz sie na wlam uzywaj mysql_escape_string($_POST...
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.