PHP API авторизация

500 руб. за проект • безналичный расчёт, электронные деньги
15 июля 2018, 03:22 • 4 отклика • 108 просмотров
Написание
API
Пользователь
передает методом POST
странице.php строку типа
STRING (передается sha512)
После чего
скрипт проверяет были ли обращения с
данного IP за последние
10 секунд.

Если нет то
записывает в таблицу LOGS
MySQL следующие данные:
id | sha512 | Дата и время в UNIX формате
| IP





Если были то
выдается ответ с статусом 2 запись при
этом не производит
После записи
в таблице LOGS скрипт лезет
в таблицу USERS
id | sha512 | password | data | IP





и ищет
совпадения по полю sha512, если
совпадений нет то выдается ответ со
статусом 3
если совпадение
есть и поле ENABLE = True то
лезет в таблице DATA и ищет
по связанному столбцу data
и формирует ответ со статусом 0 если в
поле ENABLE значение False
то ответ с статусом 1


После проверки
по полю ENABLE в случае
значения True проверяем по
полю IP (если поле пустое
или записанный IP совпадает
с тем, с какого обращается пользователь
то продолжаем дальше, в ином случаем
отвечаем статусом 4)











data | ip | db | login | password | port | utc





Формат ответа XML: данные
при этом должны шифроваться типом
DES(ECB),
пароль шифрования берется
из таблицы USERS (кроме
статуса и таймлимита)

<?xml
version="1.0" encoding="WINDOWS-1251"?>

<meta>

<data
timelimit ="10"/>
время
ограничения запросов с
одного IP

<data
status="0"/> в
случае статуса кроме как 0 все поля ниже
должны быть пустыми

<data
ip=""/> из
таблицы DATA

<data
db=""/> из
таблицы DATA

<data
login=""/> из
таблицы DATA

<data
password=""/> из
таблицы DATA

<data
port=""/> из
таблицы DATA

<data
time=""/> время
сервера в UNIX
формате

</meta>


для примера
шифрования (есть скрин)

Текст
шифрования:шла Саша по ленинградскому
шоссе и создала пробку

Ключ
шифрования:pUGsn1Zw9wrwl76m

Результат
шифрования:ALRf5EMkru7OGlH21HpEE9AsCyPfv3/zKT7y9LqVLa3cALfk4sPsV4xiV7E1KabWQz4l31E7+Ndidf+grCSSIk+Q+ljzwTC4YdZhx02nJQplLL3itLM36qhZEDVCgQ4L


Статус:
1 — Поле
ENABLE = False (пользователь
заблокирован)
2 — превышен
интервал запросов
3 — нет
совпадений SHA512
4
— обращение с
неразрешенного IP

0
— ОК


Переменные
с данными подключения к MySQL
должны быть во 2м
файле, как и переменная с временным
ограничением обращения


Файлы