php – 会话劫持或攻击?

我最近在错误日志中看到了这个(每天1个,我每天有4万个访问者):
[22-Sep-2009 21:13:52] PHP Warning: session_start() [function.session-start]: The session id contains illegal characters,valid characters are a-z,A-Z,0-9 and '-,' in /var/my_files/class.session.PHP on line 67 
[22-Sep-2009 21:13:52] PHP Warning: UnkNown: The session id contains illegal characters,' in UnkNown on line 0 
[22-Sep-2009 21:13:52] PHP Warning: UnkNown: Failed to write session data (files). Please verify that the current setting of session.save_path is correct () in UnkNown on line 0

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

我已经修改PHP.ini来实现这个目的:

session.use_only_cookies = 1
session.use_trans_sid = 0

我怀疑会话被劫持或者是一种我不知道的攻击(我是parano;)).

你知道它可能是什么吗?我该怎么做才能提高安全性并避免这种情况?

这里可能做的是该客户端已经更改了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文件夹中.文件变旧后,文件将被删除.

相关文章

统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...
前言 之前做了微信登录,所以总结一下微信授权登录并获取用户...
FastAdmin是我第一个接触的后台管理系统框架。FastAdmin是一...
之前公司需要一个内部的通讯软件,就叫我做一个。通讯软件嘛...
统一支付是JSAPI/NATIVE/APP各种支付场景下生成支付订单,返...