Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Skrypt logowania na sesjach :), czy ten skrypt sie sprawdzi?
adeq_PL
post
Post #1





Grupa: Zarejestrowani
Postów: 72
Pomógł: 0
Dołączył: 25.01.2006
Skąd: Oświęcim

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


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 (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)

Ten post edytował adeq_PL 26.01.2006, 16:14:26
Go to the top of the page
+Quote Post
andrzejb
post
Post #2





Grupa: Zarejestrowani
Postów: 93
Pomógł: 1
Dołączył: 12.08.2005

Ostrzeżenie: (10%)
X----


  1. <?php
  2. WHERE login = "'.$_POST['loginadm'].'" AND pas
  3. ?>


poczytaj o sql injection naarzasz sie na wlam uzywaj mysql_escape_string($_POST...
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: 19.09.2025 - 01:28