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

Поиск:

Ответ в темуСоздание новой темы Создание опроса
> Защищенность кода. 
V
    Опции темы
Throne
Дата 10.7.2007, 15:42 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Господа, особо не занимался пока безопасностью в php подскажите, не сильно ли уязвима такая проверка пароля:
Код

session_start();
  include("../../_conf.php");
  $query = "SELECT * FROM users WHERE login='".$_SESSION['login']."' and pass='".$_SESSION['pass']."'";
  $sql = mysql_query($query, $link);
  if(mysql_num_rows($sql)!=1)
  {
   Header("Location: ../login.php");
  }
  else
  {

.... //ТУТ СОБСТНО САМ КОД ПРОГРАММЫ

  };
  mysql_close();

Вот код страницы авторизации:
Код

session_start();
if ($_POST['login_s']!='')
 {
  include("../../_conf.php");
  $query = "SELECT * FROM users WHERE login='".$_POST['login_l']."' and pass='".$_POST['login_p']."'";
  $sql = mysql_query($query, $link);
  if(mysql_num_rows($sql)!=1)
  {
   Header("Location: login.php");
  }
  else
  {
   $_SESSION['login']=$_POST['login_l'];
   $_SESSION['pass']=$_POST['login_p'];  
   Header("Location: ../../admin/index.php");  
  };
  mysql_close();
 };

В _conf.php производится коннект к бд.

Это сообщение отредактировал(а) Throne - 10.7.2007, 15:45
--------------------
Компьютер — это наредкость тупая вещь, но считает с феноменальной скоростью. 
PM MAIL   Вверх
anabiosys
Дата 10.7.2007, 16:00 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Код

$query = "SELECT * FROM users WHERE login='".$_POST['login_l']."' and pass='".$_POST['login_p']."'";

Не забывай эскейпить данные, которые приходят от пользователя .
Код

$s_login=mysql_real_escape_string($_POST['login_l']);
$s_pass=mysql_real_escape_string($_POST['login_p']);
$query = "SELECT * FROM users WHERE login='".$s_login."' and pass='".$s_pass."'";


Это сообщение отредактировал(а) anabiosys - 10.7.2007, 16:03
PM MAIL   Вверх
Throne
Дата 10.7.2007, 16:08 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Как наседство паскаля и рационализма не люблю вводить лишние переменные. 
Так ведь можно делать:
Код

$query = "SELECT * FROM users WHERE login='".(mysql_real_escape_string($_POST['login_l']))."' and pass='".(mysql_real_escape_string($_POST['login_p']))."'";

Ток вопрос: а это зачем делать  smile 
--------------------
Компьютер — это наредкость тупая вещь, но считает с феноменальной скоростью. 
PM MAIL   Вверх
anabiosys
Дата 10.7.2007, 16:13 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



Чтобы пользователь не ввёл что-то типа
Login: admin
Password: ' or '1'='1
Подставь в запрос и поймёшь
PM MAIL   Вверх
Throne
Дата 10.7.2007, 16:25 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



ухты
Прикольненько smile терь понял. а когда я из кук беру инфу такое делать необязательно или тоже нужно? куки может пользователь как-то подделать?
--------------------
Компьютер — это наредкость тупая вещь, но считает с феноменальной скоростью. 
PM MAIL   Вверх
anabiosys
Дата 10.7.2007, 16:28 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Опытный
**


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

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



всё, что приходит от пользователя, нужно фильтровать. куки не исключение

Добавлено через 48 секунд
подделать их несложно 
PM MAIL   Вверх
Throne
Дата 10.7.2007, 16:36 (ссылка) | (нет голосов) Загрузка ... Загрузка ... Быстрая цитата Цитата


Шустрый
*


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

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



Окей, возьму функцию на вооружение =)
Спасибо большое за объснения.
--------------------
Компьютер — это наредкость тупая вещь, но считает с феноменальной скоростью. 
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.0432 ]   [ Использовано запросов: 22 ]   [ GZIP включён ]


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

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