Решено Авторизация для приложения

Статус
В этой теме нельзя размещать новые ответы.

Wolfys

Проверенные
Сообщения
14
Реакции
2
Баллы
3,300
Добрый вечер Уважаемые коллеги !
У меня возникла проблема с авторизацией в приложении которое написал один разработчик.
Возможно проблема в скрипте для авторизации.

PHP:
<?php
header("Content-Type: text/plain; charset=UTF-8");
// Verify login and password
$login = $_GET['login'];
$password = $_GET['password'];
if(empty($login) || empty($password)) {
    exit('Empty login or password');
}
// Load XenForo core
$dir = dirname(__FILE__);
$libraryDir = $dir . '/library';
require_once($dir . '/library/XenForo/Autoloader.php');
XenForo_Autoloader::getInstance()->setupAutoloader($libraryDir);
XenForo_Application::initialize($libraryDir, $dir);
XenForo_Application::set('page_start_time', microtime(true));
$db = XenForo_Application::get('db');
// Resolve user_id by login
$result = $db->fetchRow('SELECT user_id, username FROM xf_user WHERE username=' . $db->quote($login) . ' OR email=' . $db->quote($login));
if(!count($result)) {
    exit('Incorrect login');
}
$user_id = $result['user_id'];
$username = $result['username'];
// Get user data
$result = $db->fetchCol('SELECT data FROM xf_user_authenticate WHERE user_id=' . $db->quote($user_id));
if(!count($result)) {
    exit('Unable to get user data: ' . $user_id);
}
$data = $result[0];
// Select authentication core
$auth = NULL;
if(class_exists('XenForo_Authentication_Core12')) {
    $auth = new XenForo_Authentication_Core12;
} else if(class_exists('XenForo_Authentication_Core')) {
    $auth = new XenForo_Authentication_Core;
} else exit('Unable to select authentication core');
// Try authenticate
$auth->setData($data);
$success = $auth->authenticate($user_id, $password);
echo($success ? 'OK:' . $username : 'Incorrect login or password');
?>

Буду очень признателен если вы сможете мне помочь.
 
Последнее редактирование:
Последнее редактирование:
OFFTOP


Это то, что я думаю?

OFFTOP

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


Для тестирования можете использовать мой форум.
 
OFFTOP

Если ты думаешь что это получение логина и пароля из приложения то да. Приложение подставляет свой логин и пароль
Я к тому, что я хоть не программер, но меня учили всегда и везде не доверять входящим данным и везде проверять и фильтровать сразу же после получения данных. А тут потенциальная скуля, как бы.



OFFTOP

ЗЫ. Думаю, где-то видел этот код. А

.

 
Последнее редактирование:
  • Мне нравится
Реакции: Hope
OFFTOP


Я к тому, что я хоть не программер, но меня учили всегда и везде не доверять входящим данным и везде проверять и фильтровать сразу же после получения данных. А тут потенциальная скуля, как бы.



OFFTOP

ЗЫ. Думаю, где-то видел этот код. А

.

OFFTOP

Верно он самый и создатель увы тоже не знает как мне помочь.

 
У меня возникла проблема с авторизацией в приложении которое мне написал один разработчик.
И какая проблема? Тут экстрасенсы сидят?
И что за приложение
 
Проблема в том что приложение не получает подтверждение авторизации через данный скрипт. Приложение это лаунчер для игры minecraft.
- вот оно. Если нужен настроенный лаунчер могу легко его предоставить.
Лаунчер отправляет логин и пароль пользователя и должен получить в ответ сообщение об успешной авторизации.
Скрипт этот ответ не отправляет.
Исходники приложения - - хотя врятле там где-то ошибка.... разработчик говорит проблема в скрипте.
 
Unable to get user data: - вот она.

PHP:
$result = $db->fetchCol('SELECT data FROM xf_user_authenticate WHERE user_id=' . $db->quote($user_id));
if(!count($result)) {
    exit('Unable to get user data: ' . $user_id);
}
вот часть кода, возможно где-то выше проблема, я точно не знаю. Интересует верно ли написан сам скрипт для получения верной авторизации.
Клиент должен получить что авторизация была верная в этой части кода
PHP:
$auth->setData($data);
$success = $auth->authenticate($user_id, $password);
echo($success ? 'OK:' . $username : 'Incorrect login or password');
?>
Но до него соответственно не доходит, где-то проблема в авторизации......
повторюсь изменить могу прямо сейчас что угодно и по тестировать вы можете его самостоятельно....
Увы я не сталкивался еще с методом авторизации на XenForo ( не давно на него перешел )
 
XenForo_Authentication_Core12 - не используется с версии 1.3.
XenForo_Authentication_Core - не используется с версии 1.4.
PHP:
$login = $_GET['login'];
$password = $_GET['password'];
А вот за такое надо бить по рукам, у вас скрипт уязвим как минимум.

По итогам - весь приведенный код на помойку и переписать с использованием API XenForo, реализаций которого пара штук есть как минимум. Вот эту советую: - это уже готовый пример функции авторизации, выше по репозиторию есть сам файл с API.
 
придется временно отказаться от использования XenForo хотя он нравится мне больше всего......
Создатель будет переписывать скрипт полностью. Спасибо всем за помощь.
 
Статус
В этой теме нельзя размещать новые ответы.
Современный облачный хостинг провайдер | Aéza
Назад
Сверху Снизу