如果在登录前创建了PHP会话,则会为每个登录页面请求创建一个会话文件.
问题是如果用户通过脚本向服务器发出多个请求,那么将创建那么多会话文件.
如果用户想攻击服务器,他可以发送异常大量的请求,创建如此多的会话文件占用所有临时空间并使服务不可用.
我不确定这种攻击是否真的可行/可行.
如果在成功登录之前/之后创建PHP会话,请分享您对此的意见和影响.
我认为你误解了session_start()
session_start会发生什么,是的,它将为单个用户创建一个文件.但是下次调用session_start()时,它将为同一个用户使用相同的文件,因为用户在其系统上有一个cookie,告诉它使用哪个ID.为了使$ _SESSION数组可用,您必须在每个页面上调用session_start().
有人可能会像你刚才描述的那样掀起一个场景.
实际上,是的,黑客总是可以拥有一个机器人,在每次尝试后清除其cookie,发出10,000个请求,并可能产生磁盘写入问题,但我真的不会太担心它,因为文件很小,比你写的脚本小得多.您必须编写更多文件(数百万或数十亿的大小)来实际创建问题.
如果你真的想看看你的服务器会有什么影响.编写一个脚本,在目录中创建相当于2段文本的文件.并将其放入10,000个文件的循环中.
如果您担心它会产生的影响,我建议实施一个跟踪器,可以从一个IP地址看到大量的点击进入网站,然后暂时禁止IP地址,或者做谷歌做的事情,只是为他们提供静态验证码页面,不需要很多资源来提供服务.
所以,回到实际的'问题':
我为访问我网站的每个用户设置了一个会话,因为我不仅使用会话进行用户身份验证,还用于跟踪我网站上的其他变量.所以,我相信即使他们没有登录你也应该设置它.