Подтвердить что ты не робот

Чтение идентификатора сеанса с использованием Javascript

Можно ли каким-либо образом прочитать идентификатор сеанса браузера с помощью javascript?

4b9b3361

Ответ 1

Да. Поскольку идентификатор сеанса либо переносится по URL (document.location.href), либо через файл cookie (document.cookie), вы можете проверить оба на наличие идентификатора сеанса.

Ответ 2

вы можете получить идентификатор сеанса, выпустив следующее регулярное выражение на document.cookie:

оповещения (document.cookie.match(/PHPSESSID = [^;] +/));

в моем примере имя файла cookie для хранения идентификатора сеанса - PHPSESSID (php-сервер), просто замените PHPSESSID на имя файла cookie, в котором содержится идентификатор сеанса. (настраивается веб-сервером)

Ответ 3

Для извлечения JSESSIONID может быть использовано следующее:

function getJSessionId(){
    var jsId = document.cookie.match(/JSESSIONID=[^;]+/);
    if(jsId != null) {
        if (jsId instanceof Array)
            jsId = jsId[0].substring(11);
        else
            jsId = jsId.substring(11);
    }
    return jsId;
}

Ответ 4

Насколько я знаю, сеанс браузера не имеет идентификатора.

Если вы имеете в виду сеанс сервера, который обычно хранится в файле cookie. Файл cookie, который хранится в ASP.NET, например, называется "ASP.NET_SessionId".

Ответ 5

Для переменной PHP PHPSESSID эта функция работает:

function getPHPSessId() {
    var phpSessionId = document.cookie.match(/PHPSESSID=[A-Za-z0-9]+\;/i);

    if(phpSessionId == null) 
        return '';

    if(typeof(phpSessionId) == 'undefined')
        return '';

    if(phpSessionId.length <= 0)
        return '';

    phpSessionId = phpSessionId[0];

    var end = phpSessionId.lastIndexOf(';');
    if(end == -1) end = phpSessionId.length;

    return phpSessionId.substring(10, end);
}

Ответ 6

Здесь короткая и приятная функция JavaScript для получения идентификатора сеанса:

function session_id() {
    return /SESS\w*ID=([^;]+)/i.test(document.cookie) ? RegExp.$1 : false;
}

Или, если вы предпочитаете переменную, здесь простой однострочный:

var session_id = /SESS\w*ID=([^;]+)/i.test(document.cookie) ? RegExp.$1 : false;

Должен совпасть с cookie идентификатора сеанса для PHP, JSP,.NET, и я полагаю, что и другие серверные процессоры.

Ответ 7

вы можете, возможно, пинговать сервер через ajax внутри javascript. Файл php может выглядеть примерно так:

<?php
session_start();
$id = session_id();
echo $id;
?>

Это вернет вам текущий идентификатор сеанса. Это то, что вы искали.

Ответ 8

Обновление 2017

var cookie = new URLSearchParams(document.cookie)
if(cookie.has("PHPSESSID")){
    var sessionID = cookie.get("PHPSESSID")
}