【问题标题】:PHP session cookie - security concernPHP 会话 cookie - 安全问题
【发布时间】:2018-12-12 12:13:02
【问题描述】:

我正在使用会话 cookie 在 Wordpress 中使用以下代码显示从一个页面到另一个页面的类别 ID:

<?php if(is_product_category()) {
    session_start();
    $cat_obj = $wp_query->get_queried_object();
    $thiscat_id = $cat_obj->term_id;
    $_SESSION['category'] = $thiscat_id;
} ?>

<?php if(is_product()) {
    session_start();
}
?>

<div <?php if(is_product()) { ?> data-cat="<?php echo $_SESSION['category']; ?>" <?php } ?> id="content" class="site-content">

但是,在阅读了 Sessions 之后,我发现如果操作不当,它们可能会带来安全风险。

我只是想知道上面的代码是否有任何可能影响安全的缺陷?

【问题讨论】:

  • 说真的,如果您只在会话中存储一个类别,那怎么会是安全风险?
  • 对于代码审查,我们可以使用codereview.stackexchange.com
  • 谢谢@maio290,我原本认为代码不应该有安全风险,但只是想检查一下,以防我遗漏任何东西。
  • 仅供参考:会话和cookie不是一回事。
  • 您在询问什么安全问题?有人可能会强制使用 ID 并获取另一个人的类别。不过,这对我来说听起来不是什么大问题。如果这是问题,请参阅security.stackexchange.com/questions/81519/…

标签: php wordpress session


【解决方案1】:

根据 cmets,如果它无法保护具有一定价值的资产,则只有安全风险 - 从您的问题中不清楚资产的价值。例如,如果您有一个“类别”允许在您的网站上进行管理员操作,那么可能存在风险。

是的,会话存在很大的安全问题 - 但其中大多数与您的 PHP 代码无关,而是与 PHP 和网络服务器配置有关:

  • 身份验证状态更改(登录注销)时必须始终更改会话 ID
  • 除非通过 HTTPS 访问站点并且会话 cookie 具有安全标志,否则劫持会话很简单
  • 空会话必须触发新的会话 ID 和默认会话状态
  • 会话 cookie 应该是 httponly
  • 在共享主机上,会话数据应使用保存在主机上的密钥加密
  • 最终用户不应访问会话数据
  • 会话 ID 不能是可预测的

【讨论】:

    猜你喜欢
    • 2011-10-31
    • 1970-01-01
    • 2011-09-13
    • 2011-04-08
    • 1970-01-01
    • 1970-01-01
    • 2011-06-11
    • 2011-12-03
    • 2012-04-12
    相关资源
    最近更新 更多