Просмотр и изменение переменных сеанса в браузере

Отладка программы PHP, есть ли какой-либо надстройщик / плагин для браузера, который я могу просматривать переменными сеансов (те PHP $ _SESSION ["foobar"])?

Лучше, если я могу изменить значение в переменных.

    Невозможно манипулировать значениями, хранящимися в сеансах, с клиентской стороны.

    Это одна из основных причин, по которой вы используете сеанс над файлом cookie – вы контролируете данные. С помощью файлов cookie пользователь может манипулировать данными.

    Единственный способ доступа / обработки данных сеанса с клиентской стороны – это вызов Ajax или другой механизм JavaScript для вызова другого скрипта php, который будет выполнять поиск / обработку данных сеанса через функции session_ .

    $_SESSION – это серверный массив переменных. Если бы мы могли читать или изменять ценности, есть много вещей, которые мы могли бы сделать, чтобы взломать или вызвать другие плохие вещи.

    Однако, используя phpinfo(); мы можем просмотреть переменные сеанса, но мы не можем изменить значение.

    Еще лучше, мы можем отлаживать все переменные сеанса с помощью

     print_r($_SESSION); //if you echo "<pre>" before, and a closing "</pre>" after, it prints very cleanly. 

    некоторые другие полезные команды:

     session_start(); // start session -- returns Session ID session_destroy(); // unset all session variable 

    Сессия – это массив, поэтому, если вы устанавливаете $_SESSION['key']='value'; он аналогичен $array['key']=value; – только то, что особенное в $ _SESSION, заключается в том, что оно сохраняется до закрытия окна или вызывает session_destroy() .

    Вы можете использовать этот код ниже:

     <?php error_reporting(E_ALL); session_start(); if (isset($_POST['session'])) { $session = eval("return {$_POST['session']};"); if (is_array($session)) { $_SESSION = $session; header("Location: {$_SERVER['PHP_SELF']}?saved"); } else { header("Location: {$_SERVER['PHP_SELF']}?error"); } } $session = htmlentities(var_export($_SESSION, true)); ?> <!DOCTYPE html> <html lang="en-US"> <head> <meta charset="UTF-8"> <title>Session Variable Management</title> <style> textarea { font: 12px Consolas, Monaco, monospace; padding: 2px; border: 1px solid #444444; width: 99%; } .saved, .error { border: 1px solid #509151; background: #DDF0DD; padding: 2px; } .error { border-color: #915050; background: #F0DDDD; } </style> </head> <body> <h1>Session Variable Management</h1> <?php if (isset($_GET['saved'])) { ?> <p class="saved">The session was saved successfully.</p> <?php } else if (isset($_GET['error'])) { ?> <p class="error">The session variable did not parse correctly.</p> <?php } ?> <form method="post"> <textarea name="session" rows="<?php echo count(preg_split("/\n|\r/", $session)); ?>"><?php echo $session; ?></textarea> <input type="submit" value="Update Session"> </form> </body> </html> 

    Однако имейте в виду, что в то время как «переменные» сеанса хранятся на стороне сервера, идентификатор сеанса либо находится в URL-адресе GET / POST (идея ОЧЕНЬ ПЛОХО), либо сохраняется в cookie-браузере браузера (улучшенная безопасность), но все же подвержен манипуляциям / attack / etc, если вы не берете файлы cookie на основе идентификаторов сеансов.

    http://en.wikipedia.org/wiki/Session_fixation

    http://en.wikibooks.org/wiki/PHP_Programming/sessions#Avoiding_Session_Fixation