使用.htaccess动态地通过HTTPS设置cookie安全性和httponly以及通过HTTP实现httponly可以安全吗?

问题描述

我希望在.htaccess文件中有一个动态规则,该规则允许我在HTTPS服务器中将所有cookie(例如Secure和HTTPOnly)设置为HTTP,而在HTTP服务器中,将所有cookie设置为HTTPOnly而不设置Secure标志

我写了一条似乎可行的规则,但是我只在本地主机中以HTTPS和HTTP进行过测试,并且在将其联机到服务器上之前,我想对如何改进该规则进行确认或提出建议。是的,在localhost中,我安装并配置了运行良好的自签名证书,我在VirtualHost中放入了必要的规则,以根据访问服务器的方式使服务器以https和http身份工作。当然,当我在Aruba上有一台由有效SSL证书提供服务的服务器时,本地主机将仅用于开发。最终,我希望所有东西都可以在开发服务器和带有https和http的在线服务器上使用。这是我为自己写的规则。你觉得呢?

这是我的.htaccess文件,用于测试我的规则:

<IfModule mod_headers.c>
  # Security Server Settings
  Header set X-Content-Type-Options "nosniff"
  Header append x-frame-options "SAMEORIGIN"
  Header set X-XSS-Protection "1; mode=block"
  Header unset X-Powered-By
  # Over HTTPS set all cookies as httpOnly and Secure
  Header edit Set-Cookie ^(.*)$ "$1; httpOnly; secure" "expr=%{HTTPS} == 'on'"
  # Over HTTP set all cookies as httpOnly (not Secure)
  Header edit Set-Cookie ^(.*)$ "$1; httpOnly" "expr=%{HTTPS} == 'off'"
</IfModule>

这是我用于测试规则的index.PHP文件

<?PHP
  session_start();
  setcookie(session_name(),session_id(),NULL,'/',NULL);
?>

将Web Developer与FireFox一起使用,我可以看到PHPSESSID会话cookie的状态,如果访问http://localhost/index.PHP,则可以看到cookie设置为HTTPOnly,而如果访问https:// localhost / index .PHP,我看到cookie设置为Secure和HTTPOnly。

最后说明:Apache 2.4.46(64位)/ PHP 7.4.9(64位)/ OpenSSL 1.1.1g

谢谢。

亚历山德罗

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)