Как безопасно продолжить сеанс из Nextcloud на внешней странице PHPPhp

Кемеровские программисты php общаются здесь
Ответить
Anonymous
 Как безопасно продолжить сеанс из Nextcloud на внешней странице PHP

Сообщение Anonymous »

Я создаю небольшое приложение для Nextcloud (16). Мне нужно выполнить некоторый код во внешнем файле PHP, а не в приложении Nextcloud.
Эта страница должна быть защищена от несанкционированного доступа. Я хочу добиться этого с помощью существующего файла cookie сеанса Nextcloud.

В настоящее время я читаю файл cookie nc_session_id из браузера пользователя и проверяю, существует ли этот сеанс в PHP. путь сеанса. Это должно быть безопасно, поскольку злоумышленник обычно не может угадать идентификатор.

Вот как выглядит сеанс Nextcloud в браузере:
Файлы cookie Nextcloud

Я пытался проверить файл cookie с помощью

Код: Выделить всё

session_status('nc_session_id') != PHP_SESSION_NONE
но это всегда возвращает int(1) --> сеанс не существует, потому что перед этим мне пришлось бы запустить session_start(). НО в этом особом случае внешняя страница никогда не должна сама запускать новый сеанс — она должна только проверять, существует ли уже действительный сеанс Nextcloud.

Мой текущий код, похоже, работает работа:

Код: Выделить всё

session_name('nc_session_id');
$sessid_cook = filter_input(INPUT_COOKIE, "nc_session_id", FILTER_SANITIZE_STRING);
$sess_path = session_save_path().'/sess_'.$sessid_cook;

if(isset($_COOKIE['nc_session_id']) &&
isset($_COOKIE['nc_username']) &&
file_exists($sess_path)) {
echo "Session okay";
session_start();
} else {
echo "Access denied";
exit;
}

// my protected logic here
Если я манипулирую файлом cookie сеанса в своем браузере, код PHP на сервере не сможет найти файл сеанса для этого управляемого файла cookie. Таким образом, доступ запрещен.

Это работает в моей текущей настройке, но что произойдет, если сеансы обрабатываются Redis или Memcache? Не удалось проверить файлы cookie локально.

Есть ли лучший способ «проверить» файлы cookie сеанса перед запуском сеанса PHP?

Является ли мое решение безопасным или у него есть недостатки?

Подробнее здесь: https://stackoverflow.com/questions/582 ... l-php-page
Ответить

Быстрый ответ

Изменение регистра текста: 
Смайлики
:) :( :oops: :roll: :wink: :muza: :clever: :sorry: :angel: :read: *x)
Ещё смайлики…
   
К этому ответу прикреплено по крайней мере одно вложение.

Если вы не хотите добавлять вложения, оставьте поля пустыми.

Максимально разрешённый размер вложения: 15 МБ.

Вернуться в «Php»