Wordpress 如何向所有 SETCOOKIE() 函数添加 httponly 和安全标志?

Posted

技术标签:

【中文标题】Wordpress 如何向所有 SETCOOKIE() 函数添加 httponly 和安全标志?【英文标题】:Wordpress how to add httponly and secure flag to all SETCOOKIE() function? 【发布时间】:2016-01-29 19:41:03 【问题描述】:

我是 wordpress 新手。在少数插件的代码中,一些 setcookie() 函数已经设置了 HTTPOnly 和 Secure 标志,而一些 setcookie() 函数在代码中没有 HTTPOnly 或安全标志。

如何设置所有带有 HTTPonly 和 Secure 标志的 setcookie() 函数,无论是否设置了 HTTPOnly 或 Secure 标志。

如果我在 .htaccess 中应用将上述标志设置为 TRUE 的代码,或者在 index.php 中使用 ini_set() 或更改 Apache 配置,这会影响我现有的 Wordpress 工作吗?

或者谁有更好的解决方案?

【问题讨论】:

【参考方案1】:

据我所知,不可能为任何 cookie 预先设置 HTTPOnly - 但是可以为会话 cookie 设置它。

看看PHP: SetCookie documentation

对于安全位,您的网站也需要通过 SSL 运行。对于 HTTPOnly - 如果任何脚本依赖于这些 cookie 中的值,则 JS 无法读取 HTTPOnly cookie。

您可以编写自己的 setSecureCookie() 函数,该函数在内部调用 setcookie() ...但这是一个完整的代码重写。

【讨论】:

谢谢,之前我的网站很少有 SSL 页面。现在为了增强安全性,所有页面都在 SSL 层下。我的问题是,不是在没有安全或 httponly 的情况下查找和替换 setcookie 函数,有什么方法可以通过从一个地方将 SSL 和 HTTPonly 标志设置为 TRUE 吗? 我不确定常规 cookie 是否可行。不过会话 cookie 是可能的。 对不起,我忘了提及会话 cookie。我正在考虑在 php.ini 中将 session.cookie_httponly 和 session.cookie_secure 设置为 TRUE session.cookie_httponly - 是的,请打开它。仅当您的网站 100% 启用 SSL 时,安全位才对您有效。 谢谢...将直接在生产环境中尝试:-0

以上是关于Wordpress 如何向所有 SETCOOKIE() 函数添加 httponly 和安全标志?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 WordPress 中设置、获取和销毁 cookie?

如何向 WordPress 添加一个简单的 jQuery 脚本?

WordPress Gravity Forms 按用户角色向 WP 用户动态发送通知

如何在wordpress中向自己提交表单

如何编码 WordPress 插件软件更新?

当后端连接到 wordpress 时如何向设备发送通知?