Модераторы: skyboy, MoLeX, Aliance, ksnk
  

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Безопасность в авторизации 
:(
    Опции темы
Spiker
Дата 20.2.2007, 19:47 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: -2
Всего: -2



Безопасность в авторизации
Народ!
Всем привет!
Тут скиптик нарисовал нидавно для своего сайта ...
 походу скрип работает но дело втом что я думаю лубой чайник сможет взломать его какимто образом...

Авторизация
Код

<html>
<form action = "<?php ['PHP_SELF']  ?>" method="post">
Username:<input type=text value=username><br>
Password:<input type=password value=password><br>
<input type="submit" name="submit" value=submit>
</form>
</html>
<?php

if(isset($_POST['submit']) ) {     // true if form has been submitted

    session_start();
//конектиться к базе
    mysql_connect("localhost", "root", "") or die("There was an error connecting to the mysql server."); 
    mysql_select_db("website");           // obtain access to database   


    $SQL=" SELECT security_id FROM security WHERE username='$username' AND password= '$password' ";

                                 
              $security = mysql_query($SQL);

                   if ( mysql_num_rows($security) ) {

                     $row = mysql_fetch_array($security);  
//достает ID usera
                         $security_id = $row['security_id'];


                               $sess_security_id = $security_id ;                     
                                  session_register('sess_security_id');
                                   header("location:  test.html ");

                 }

         // авторизация неудачна показывает форму опать                       
}

?>


и потом
накаждой страничке ...
Код

<?php
if( !session_is_registered('sess_security_id') ) {

            // security_id key регистрируеться с сесией
            // в авторизаций
//тут техт и др.
     // header("location: index.html ");    
}   
?>
<?php
//а ето типа что6ы дать админу админ панель
$SQL=" SELECT access_level FROM security 
                
           WHERE security_id='$sess_security_id'  "; 


  $security  = mysql_query($SQL);

      $row = mysql_fetch_array($security);  


          $access_level = $row['access_level'];


             if($access_level == 'A') {

                echo "Хелло Ворлд им aDmIn!";
             } 
            
            ?>





подскажите как улучшить скрипт

Это сообщение отредактировал(а) Spiker - 20.2.2007, 19:53


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
Serkys
Дата 20.2.2007, 20:26 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



1. Отключи register_globals и работай через массив $_POST;
2. Для всех данных используй mysql_real_escape_string (см. sql-иньекции);

Username:<input type=text value=username>
Он у тебя вообще работает? Почему не name, а value стоит в username?
PM MAIL   Вверх
Spiker
Дата 20.2.2007, 20:38 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: -2
Всего: -2



не заметил ...
сейчас протестируем smile

Добавлено @ 20:43 
неа, почемуто говорит 
"Warning: session_start() [function.session-start]: Cannot send session cache limiter - headers already sent (output started at k:\home\localhost\www\entry_page.php:2) in k:\home\localhost\www\entry_page.php on line 12"


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
Serkys
Дата 20.2.2007, 20:48 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



http://vingrad.ru/PHP-ART-002859 - обязательно к прочтению!
PM MAIL   Вверх
Spiker
Дата 21.2.2007, 01:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


Профиль
Группа: Участник
Сообщений: 265
Регистрация: 25.5.2005
Где: Спортзал

Репутация: -2
Всего: -2



Малость подумал и выдумал smile
 Паролъ шифруеться, Добавляеться в куки юсер+парол и там время на них...
и сделал два флага ... А=Админ и Л=юсер

походу все работает smile


--------------------
Даваите жить дружно! (Леопольд.) :shy67:
PM MAIL MSN   Вверх
helflip
Дата 21.2.2007, 10:32 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 146
Регистрация: 14.5.2006
Где: Moscow

Репутация: 2
Всего: 4



куки ф топку, пользуйся сессиями! даже не думай хранить юсер+парол в куках, ты че! smile 
--------------------
 
PM MAIL   Вверх
Vbif
Дата 21.2.2007, 10:44 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


Профиль
Группа: Участник
Сообщений: 59
Регистрация: 25.2.2006
Где: Реутов

Репутация: нет
Всего: нет



Код

mysql_connect("localhost", "root", "") or die("There was an error connecting to the mysql server."); 

вот это в сценарий лучше не писать  для этого создай отдельный файл и потом инклудом его включи...
Код

<?php
// defines database connection data
define('DB_HOST', 'localhost');
define('DB_USER', 'user');
define('DB_PASSWORD', 'pass');
define('DB_DATABASE', 'test'); 
?>

и в сценарии вставляй уже константы
Код

mysql_connect("DB_HOST", "DB_USER", "") or die ("There was an error connecting to the mysql server."); 



Это сообщение отредактировал(а) Vbif - 21.2.2007, 10:45
PM MAIL WWW ICQ   Вверх
Serkys
Дата 21.2.2007, 18:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Эксперт
***


Профиль
Группа: Завсегдатай
Сообщений: 1061
Регистрация: 19.4.2004

Репутация: 4
Всего: 22



Цитата(Spiker @  21.2.2007,  01:08 Найти цитируемый пост)
А=Админ и Л=юсер

Уж стразу бы написал, что А=Админ, Л=ламер
smile
PM MAIL   Вверх
  
Ответ в темуСоздание новой темы Создание опроса
Правила форума "PHP"
Aliance
IZ@TOP
skyboy
SamDark
MoLeX

Новичкам:

  • PHP редакторы собираются и обсуждаются здесь
  • Электронные книги по PHP, документацию можно найти здесь
  • Интерпретатор PHP, полную документацию можно скачать на PHP.NET

Важно:

  • Не брезгуйте пользоваться тегами [code=php]КОД[/code] для повышения читабельности текста/кода.
  • Перед созданием новой темы воспользуйтесь поиском и загляните в FAQ
  • Действия модераторов можно обсудить здесь

Внимание:

  • Темы "ищу скрипт", "подскажите скрипт" и т.п. будут переноситься в форум "Web-технологии"
  • Темы с именами: "Срочно", "помогите", "не знаю как делать" будут УДАЛЯТЬСЯ

Если Вам понравилась атмосфера форума, заходите к нам чаще! С уважением, IZ@TOP, skyboy, SamDark, MoLeX, awers.

 
0 Пользователей читают эту тему (0 Гостей и 0 Скрытых Пользователей)
0 Пользователей:
« Предыдущая тема | PHP: Общие вопросы | Следующая тема »


 




[ Время генерации скрипта: 0.0854 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


Реклама на сайте     Информационное спонсорство

 
По вопросам размещения рекламы пишите на vladimir(sobaka)vingrad.ru
Отказ от ответственности     Powered by Invision Power Board(R) 1.3 © 2003  IPS, Inc.