Форум: Форум PHPФорум ApacheФорум Регулярные ВыраженияФорум MySQLHTML+CSS+JavaScriptФорум FlashРазное
Новые темы: 0000000
MySQL на примерах. Авторы: Кузнецов М.В., Симдянов И.В. PHP Puzzles. Авторы: Кузнецов М.В., Симдянов И.В. MySQL 5. В подлиннике. Авторы: Кузнецов М.В., Симдянов И.В. Самоучитель PHP 5 / 6 (3 издание). Авторы: Кузнецов М.В., Симдянов И.В. PHP. Практика создания Web-сайтов (второе издание). Авторы: Кузнецов М.В., Симдянов И.В.
ВСЕ НАШИ КНИГИ
Консультационный центр SoftTime

Форум PHP

Выбрать другой форум

 

Здравствуйте, Посетитель!

вид форума:
Линейный форум Структурный форум

тема: Вход в админку по паролю
 
 автор: airsed   (07.05.2011 в 22:00)   письмо автору
 
 

Только начал изучать php. Написал сайт и к нему админку, теперь нужно написать к ней ограничение по паролю... Написал код что ниже... Вроде всё работает... Но я понимаю что это примитив, хочу узнать ваше мнение что нужно для защиты от взлома и насколько легко взломать хакерам код приведённый ниже? Спасибо.




<?php
    session_start
();
    include(
"script/bd.php");

        
// проверяем наличие сессии
    
if (!isset($_SESSION['session'] )) {
    
        include(
"login.php");  // подключение формы ввода пароля
        
    
}  else { 
    
        
$s $_SESSION['session'];
        
$myquery mysql_query("SELECT * FROM adminPanel WHERE session='$s'");
        
$qrow mysql_fetch_array($myquery);
            
        if (
$s == $qrow['session']) { $acces true;} else { echo "ERROR";}
    
    } 

    if (isset(
$_POST['password'])) { 
    
        
$pass $_POST['password'];
        
$pass htmlspecialchars(trim(stripslashes($pass)));
        if (empty(
$pass)) { 
        
            exit(
"Введите пароль."); 
        
        } else {
    
            
$query mysql_query("SELECT * FROM users WHERE pass='$pass'");
            
$row mysql_fetch_array($query);
                    
            if (
$pass == $row['pass']) { 
                
                
$sess md5(uniqid(rand(),true));
                
$res mysql_query("INSERT INTO adminPanel (session) VALUES ('$sess')");
                
$_SESSION['session'] = "$sess";
                
                        
            } else {  
                
                exit(
"Пароль неверен."); 
            }
        }
    }
    
    if (
$acces != true) { exit;}
?>

  Ответить  
 
 автор: Z3RO   (07.05.2011 в 22:11)   письмо автору
 
   для: airsed   (07.05.2011 в 22:00)
 

session_start(); 
    include("script/bd.php"); 

        // проверяем наличие сессии 
    if (!isset($_SESSION['session'] )) { 
     
        include("login.php");  // подключение формы ввода пароля 
         
    }  else {  
     
        $s = $_SESSION['session']; 
        $myquery = mysql_query("SELECT * FROM adminPanel WHERE session='$s'"); 
        $qrow = mysql_fetch_array($myquery); 
             
        if ($qrow['session']) { $acces = true;} else { exit("ERROR");} 
     
    }  

    if (isset($_POST['password'])) {  
     
            if (empty($pass)) {  
         
            exit("Введите пароль."); 

        $pass = $_POST['password']; 
        $pass = htmlspecialchars(trim(stripslashes($pass)));  
         
        } else { 
     
            $query = mysql_query("SELECT * FROM users WHERE pass='$pass'"); 
            $row = mysql_fetch_array($query); 
                     
            if ($row['pass']) {  
                 
                $sess = md5(uniqid(rand(),true)); 
                $res = mysql_query("INSERT INTO adminPanel (session) VALUES ('$sess')"); 
                $_SESSION['session'] = "$sess"; 
                 
                         
            } else {   
                 
                exit("Пароль неверен.");  
            } 
        } 
    } 
     
    if ($acces != true) { exit;}

А так вроде всё ок.

  Ответить  
Rambler's Top100
вверх

Rambler's Top100 Яндекс.Метрика Яндекс цитирования