[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Помогите разобрать код...
Davidoff
Доброй ночи, помогите разобрать данный код:
// Log in user
if (isset($_POST['login']) && isset($_POST['user_name']) && isset($_POST['user_pass'])) {
$auth = new Authenticate($_POST['user_name'], $_POST['user_pass'], (isset($_POST['remember_me']) ? true : false));
$userdata = $auth->getUserData();
unset($auth, $_POST['user_name'], $_POST['user_pass']);
} elseif (isset($_GET['logout']) && $_GET['logout'] == "yes") {
$userdata = Authenticate::logOut();
redirect(BASEDIR."index.php");
} else {
$userdata = Authenticate::validateAuthUser();
}

Так понимаю, что данный скрипт отвечает за вход на сайт?
Если "ДА", то возможно ли с помощью данного скрипта украсть пароль пользователей? Если возможно, то где искать возможность кражи. Дело в том, что пользователи жалуются на кражу паролей...
Вся проблема изложена тут: http://php-fusion7.ru/forum/viewthread.php?thread_id=2997
CMS: PHP Fusion



Спустя 2 минуты, 14 секунд (8.11.2011 - 00:47) imbalance_hero написал(а):
Davidoff
Вся логика заключается в классе Authenticate , а не никак в этих двух строчках. Надо разбирать именно его, и не думаю, что тут на 5 минут дела.

Там может быть SQL-inj, либо XSS влеплен на сайте, а может у них есть прямой доступ к БД, откуда и воруют пароли на прямую.

Спустя 1 час, 1 минута, 50 секунд (8.11.2011 - 01:49) Davidoff написал(а):
imbalance_hero
Ну, из БД украсть пароль реально, а вот расшифровать его... SHA256 алгоритм.

В саппорте мне описали взаимодействие скриптов:
Цитата
1. Пользователь заходит на сайт (index).
2. Индекс запускает ядро (maincore).
3. Авторизация.
3.1. Пользователь вводит свой логин и пароль.
3.2. Пароль отправляется скрипту login.
3.3. Login отправляет запрос в БД MySQL.
3.4. БД отвечает да/нет.
3.4.1. ДА - авторизация успешна.
3.4.2. НЕТ - авторизация отклонена.
3.5. Если авторизация успешна, то пользователь входит в систему.

Сказали, что если есть проблема, то она в 3.1-3.3...

Спасибо большое за подсказку.. Этот класс взаимодействует в строчке:
// Autenticate user
require_once CLASSES."Authenticate.class.php";

Тобишь, идёт обращение к соответствующему классу..
Выкладывать этот файл или нет?

Так же, если это XSS или инъекция, то как определить это? И главное, как обезопасить пользователей?

Спустя 29 минут, 4 секунды (8.11.2011 - 02:18) Игорь_Vasinsky написал(а):
ну естественно сам класс нужно рассматривать

как вариант можно юзать так
Цитата

$auth = new Authenticate($_POST['user_name'], $_POST['user_pass'], (isset($_POST['remember_me']) ? true : false));


$name = htmlspecialchars(mysql_real_escape_string($_POST['user_name']));
$pass = htmlspecialchars(mysql_real_escape_string($_POST['user_pass']));

$auth = new Authenticate($name, $pass, (isset($_POST['remember_me']) ? true : false));


но возможно эти манипуляции есть в самом классе.


Спустя 23 минуты, 16 секунд (8.11.2011 - 02:41) imbalance_hero написал(а):
Davidoff
Я не думаю, что за бесплатно кто-то будет разбирать сложный класс. Это как искать иголку в стоге сена, никто не знает, на каком именно участке у тебя возникла беда. Вдруг, банально, в index.php в самом низу у тебя вирус добавлен, который ворует куки, а мы сейчас часа 2 или 3 будем разбирать движек форума.

Если ты не разбираешься в программировании, найми программиста, чтобы он проштудировал весь сайт на ошибки и уязвимости.

Спустя 5 часов, 15 минут, 20 секунд (8.11.2011 - 07:56) Эли4ка написал(а):
а сайт Ваш?если да то кусочки кода по больше представили бы.. biggrin.gif
Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.