【问题标题】:Trying to figure out how to hide my PHPSESSID to prevent session stealing试图弄清楚如何隐藏我的 PHPSESSID 以防止会话窃取
【发布时间】:2020-07-05 03:00:48
【问题描述】:

我试图通过使用 .htaccess 来隐藏我的 PHPSESSID 我知道这与 HTTPONLY 有关。我目前在我的 .htaccess 文件中有php_flag session.cookie_httponly 1,但它无法正常工作,我仍然可以简单地编写<script>alert(document.cookie)</script> 之类的内容并检索ID。 任何人可以帮忙吗?

【问题讨论】:

  • 我不确定您为什么要隐藏会话 ID。你在担心什么?
  • 有人可以使用 XSS 来窃取会话 ID,然后他们就可以使用它以我的身份登录
  • 您的设置是否允许您在 .htaccess 中进行此类设置? // 您也可以在开始会话之前在脚本中调用session_set_cookie_params

标签: php html .htaccess


【解决方案1】:

你可以使用

session_regenerate_id(true);

https://www.php.net/manual/en/function.session-regenerate-id.php ('true' 标志告诉系统删除​​旧会话信息)

重新生成会话 ID。这样一来,如果有人窃取了会话,那么在他们尝试使用它时它很可能已经过期了。

尽管如此,最好的选择是首先防止任何人窃取会话 ID。

过滤来自用户的所有输入,POST 数据,GET 数据,COOKIES。所有用户输入!

另外,看看这些

//Increase session security
ini_set( 'session.cookie_httponly', '1' ); //Prevents potential XSS
ini_set( 'session.use_only_cookies', '1' ); //Don't use GET for session ID
ini_set( 'session.cookie_secure', '1' ); //SSL only
define('COOKIE_HTTPONLY', TRUE); //Prevents potential XSS
define('COOKIE_SSL', TRUE); //SSL only on cookies

【讨论】:

    猜你喜欢
    • 2023-03-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-08-27
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多