【问题标题】:Cookie without Secure flag and HttpOnly flag set没有设置安全标志和 HttpOnly 标志的 Cookie
【发布时间】:2012-10-13 23:13:04
【问题描述】:

最近在我们的一个应用程序上运行了一次扫描,它返回了以下 1 个安全威胁:

1.Cookies NotMarked As Secure::Cookie 没有设置安全标志

2.没有设置HttpOnly标志的Cookie::没有设置HttpOnly标志的Cookie

$this->cache_ptr = new CACHE($_COOKIE["sess"], 0, 0);

CACHE 是一个用户构建的库,使用 Sessions 等。

我不确定将 cookie 标记为安全并使用 HttpOnly 标志设置 cookie 的正确语法。此外,这是在 php 4 中运行的遗留应用程序。 有人可以帮我解决这个问题或给我指点资源吗?

编辑: 我执行了斯文的建议。有什么方法可以测试安全功能吗?

另外,由于我使用的是 php4(最终必须更新) 我不能在 setcookie 函数中使用 httponly。 那么这是否意味着,我需要在 setcookie 函数之前添加以下行?

header("Set-Cookie: hidden=value; httpOnly");

它会干扰我的 setcookie 功能吗?

【问题讨论】:

    标签: php html cookies


    【解决方案1】:

    使用setcookie()。阅读它here。将第六个参数设置为 true 以使 cookie 安全。

    【讨论】:

    • httponly 是另一个可以用setcookie()设置的参数
    • 另外php版本小于5,不支持httponly参数。有没有办法暂时不升级php版本。
    • 如果您没有该版本,则必须使用标头功能手动设置 cookie:header( "Set-Cookie: name=value; httpOnly" );
    【解决方案2】:

    您显示的代码未设置 cookie。它可能会触发设置 cookie,但本质上您必须查看 CACHE 类,看看那里发生了什么。

    您正在寻找setcookie() 的函数调用,如果找不到,则寻找header('Set-Cookie...')

    您必须更改 setcookie() 以包含可选参数的所有默认值,直到最后您将最后两个设置为 true 以实现安全和 httponly。

    看看手册:http://de1.php.net/setcookie

    【讨论】:

    • 感谢 Landen 和 sven。有没有办法可以测试它是否安全且仅限 http?我没有最初运行时使用的安全扫描软件。
    • Firebug 会显示结果。另外检查来自服务器的Set-Cookie 响应标头也可以。
    • 我可以给它添加安全功能吗:header("Set-Cookie: name=value; httpOnly secure");
    猜你喜欢
    • 2022-01-07
    • 1970-01-01
    • 2015-06-14
    • 1970-01-01
    • 2012-05-18
    • 1970-01-01
    • 1970-01-01
    • 2016-04-02
    • 2013-04-10
    相关资源
    最近更新 更多