настоящее время я использую метод CORS (переписывания мои внешние запросы от example.com/api?param=args
к example.com/api/public/api.php?param=args
) и отправки GET запрос следующим образом:CORS - аутентификация API: сеансы (CSRF Security) - работайте?
$.get('http://www.example.com/api'), { param: "args" })
.done(function (data) {
alert(data);
});
Это работает абсолютно нормально, и я теперь могу междоменному обращение с запросами и ответами к моему программному обеспечению API.
Теперь я задаюсь вопросом, я настроил тестовый запрос, чтобы попытаться достичь Session
.
session_start();
if(isset($_GET['store'])):
$_SESSION['key'] = $_GET['store'];
elseif(isset($_GET['show'])):
echo $_SESSION['key'];
endif;
Когда я иду по ссылке непосредственно в браузере, это, однако, отлично работает, когда я посылаю запрос от внешнего домена, то второй запрос, кажется, «забыть» Session key
я сохраненную.
Код:
$.get('http://www.example.com/api'), { store: "test" })
.done(function() {
$.get('http://www.example.com/api'), { show: "args" })
.done(function (data) {
alert(data);
})
});
данные не определен
Есть ли способ, что я могу сделать сервер, который отправляет запросы на самом деле «сохранить» или «помнить» сессию на API-сервер или есть способ, которым я могу добиться этого, используя работу?
Обратите внимание, что API будет использоваться несколькими людьми - как плагин - и каждый key
будет фактически добавлен после отправки параметра Register
в качестве запроса с данными администратора этой учетной записи, поэтому мне нужна какая-то аутентификация для используя API и не может фактически думать о том, как не использовать сеанс или заставить его работать с использованием сеанса.
Обратите внимание, что если я использую сеанс (как вы можете видеть это), он создает CRSF attack
. Есть ли работа вокруг этого также?
Я не отправляю файлы cookie в запрос, я отправляю данные в Параме, который затем API будет хранить сеанс для этого запроса на этом сервере. Если я попробую это в браузере - он отлично работает, однако второй запрос, который я отправляю, на самом деле «забыл» «СЕССИЯ». Но эта последняя часть об атаке CRSF, это потрясающе!Я могу это сделать – KDOT
'Имейте JS включить его в каждый запрос.' <- отлично, спасибо! – KDOT
@ KyleE4K - «Я на самом деле не отправляю файлы cookie в запрос» - Умм, как вы считаете, сеансы работают? – Quentin