如何确定客户端浏览器是否支持会话?
我正在编写一个防洪脚本 - 我想将每个操作的脚本操作限制为 5 秒,并且我想使用客户端会话存储 unix 时间,但首先我必须检查它们是否'被启用。有可能这样做吗?
我假设您试图限制每个客户端每 5 秒运行一次以上的脚本。
Http是一种无状态协议,PHP依赖cookie值(或参数值)在服务器端初始化会话。知道这一点,仅使用会话不足以阻止用户每 5 秒多次淹没您的脚本。用户客户端可以简单地不在请求中发送 cookie 或会话 ID 参数,您必须将其视为新会话。
您将不得不使用其他方法来识别用户会话。使用请求 IP 地址是一个好的开始,但对您来说可能效果不佳(尤其是因为许多用户可以拥有相同的面向公众的 IP)。
您可以使用另一种方法。在每次页面加载时,创建一个新的 cookie(如果它不存在)。当您使用脚本时,您只需检查 cookie 是否存在,如果存在并且值正常,那么一切都很好。否则,您将禁用脚本运行。