当前位置:  开发笔记 > 编程语言 > 正文

是否应在登录前或成功登录后创建PHP会话

如何解决《是否应在登录前或成功登录后创建PHP会话》经验,为你挑选了1个好方法。

如果在登录前创建了PHP会话,则会为每个登录页面请求创建一个会话文件.

问题是如果用户通过脚本向服务器发出多个请求,那么将创建那么多会话文件.
如果用户想攻击服务器,他可以发送异常大量的请求,创建如此多的会话文件占用所有临时空间并使服务不可用.
我不确定这种攻击是否真的可行/可行.

如果在成功登录之前/之后创建PHP会话,请分享您对此的意见和影响.



1> Tyler Carter..:

我认为你误解了session_start()

session_start会发生什么,是的,它将为单个用户创建一个文件.但是下次调用session_start()时,它将为同一个用户使用相同的文件,因为用户在其系统上有一个cookie,告诉它使用哪个ID.为了使$ _SESSION数组可用,您必须在每个页面上调用session_start().

有人可能会像你刚才描述的那样掀起一个场景.

实际上,是的,黑客总是可以拥有一个机器人,在每次尝试后清除其cookie,发出10,000个请求,并可能产生磁盘写入问题,但我真的不会太担心它,因为文件很小,比你写的脚本小得多.您必须编写更多文件(数百万或数十亿的大小)来实际创建问题.

如果你真的想看看你的服务器会有什么影响.编写一个脚本,在目录中创建相当于2段文本的文件.并将其放入10,000个文件的循环中.

如果您担心它会产生的影响,我建议实施一个跟踪器,可以从一个IP地址看到大量的点击进入网站,然后暂时禁止IP地址,或者做谷歌做的事情,只是为他们提供静态验证码页面,不需要很多资源来提供服务.

所以,回到实际的'问题':

我为访问我网站的每个用户设置了一个会话,因为我不仅使用会话进行用户身份验证,还用于跟踪我网站上的其他变量.所以,我相信即使他们没有登录你也应该设置它.

推荐阅读
农大军乐团_697
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有