虽然我已经在服务端设置了session_set_cookie_params('3600'),但是客户端我拒绝了cookie,于是,每次刷新就会产生一个新的session文本文件。假设通常大家都喜欢把session文件的过期时间设为30分钟的话,那我在30分钟内禁用cookie然后频繁刷新,那别人的服务器就会因为我一个客户端而制造无穷的session文件,在gc自动回收的时候,带来服务器性能的问题。别人用什么技巧解决这个问题的呢?

解决方案 »

  1.   

    我因为之前使用的session_set_cookie_params自己实现的服务端session方案,我误以为我哪里做错了,结果我重新建立了一个非常简单的文件(用php原生的session方案):<?php
    session_start();
    ?>
    然后我不停的、飞快的刷新,换来的是session_save_path目录下有我刚才刷新换来的无数小文件。
      

  2.   

    前提:在我禁用了浏览器的cookie以后。我在网上搜索了个把小时毫无斩获,别人的生产环境下毫不介意恶意访客疯狂制造session文件吗?还是别人有很么很好的技巧杜绝了恶意访客肆意制造大量session文件的可能性?
      

  3.   

    不可能为了在服务器产生session文件而恶意刷新的,因为要达到这个效果已经是DOS攻击了,还不如直接攻击呢
    而且服务器能自动定期删除过期session文件的
      

  4.   

    您的 session.auto_start = ?
      

  5.   

    判断一下,客户端禁用了cookie,就用get方式传递session_id
      

  6.   

    session不是关闭浏览器后才失效么,刷新可以?
      

  7.   

    不是,应该是cookie失效了,然后没有sessionid.貌似cookie设置有有效期。