Php 会话劫持还是攻击?

Php 会话劫持还是攻击?,php,session,cookies,session-hijacking,Php,Session,Cookies,Session Hijacking,最近我在我的错误日志中看到了这一点(每天1个,我每天有4万访客): 这不是配置问题,因为它适用于所有人 我已经修改了php.ini以实现以下功能: session.use_only_cookies = 1 session.use_trans_sid = 0 我怀疑有会话劫持或某种我不知道的攻击(我是parano;)) 你知道会是什么吗?我能做些什么来提高安全性并避免这种情况?最好的猜测是某人的会话cookie中有一个错误的会话id,这是导致错误的原因 我看不出有人会如何使用无效的会话id进行会

最近我在我的错误日志中看到了这一点(每天1个,我每天有4万访客):

这不是配置问题,因为它适用于所有人

我已经修改了php.ini以实现以下功能:

session.use_only_cookies = 1
session.use_trans_sid = 0
我怀疑有会话劫持或某种我不知道的攻击(我是parano;))


你知道会是什么吗?我能做些什么来提高安全性并避免这种情况?

最好的猜测是某人的会话cookie中有一个错误的会话id,这是导致错误的原因

我看不出有人会如何使用无效的会话id进行会话劫持

如果要再现错误,请执行以下操作:

<?php
error_reporting(E_ALL);
session_start();
session_id ("$");

这里可能要做的是,该客户端已经更改了PHPSESSID cookie的内容。通常SessionID类似于“62bf75fb02922cf9c83fb3521255b4ab”(十六进制)

但是,用户可能已经使用一些工具修改了cookie。这不会对您的网站和服务器造成损害,因为此修改是在客户端完成的,这样做不会影响服务器(生成这些错误除外)。您可以做的是,当收到此类错误时,更改会话ID并替换客户端上的会话ID

见解决方案:

$ok = @session_start();
if(!$ok){
  session_regenerate_id(true); // replace the Session ID
  session_start(); // restart the session (since previous start failed)
}

请记住,您不能通过PHP会话cookie将文件替换或写入服务器。只有当会话成功启动时,PHP才会编写有关当前会话的会话文件并将其存储到tmp文件夹中。一旦文件变旧,文件将被删除。

这很可能是由垃圾邮件造成的。我看到很多垃圾邮件被发送一个会话ID作为GET参数,然后它们尝试使用该参数进行SMTP注入或发送电子邮件。我会试图从我的日志中找到证据,但我知道至少在十几个网站上都发生过。当我看到它时,GET vars看起来像:
?sid=v14gra@spam.com\n\subject:blah blah blah\n\nspam email here等。

是试图在服务器上写东西/替换文件的人吗?
$ok = @session_start();
if(!$ok){
  session_regenerate_id(true); // replace the Session ID
  session_start(); // restart the session (since previous start failed)
}