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

thinkphp过滤xss

thinkphp过滤xss可以在项目配置文件中添加相关配置,如DEFAULT_FILTER>htmlspecialchars,或者使用框架带的I方法获取来自用户提交的数据。
  • $auto=I('post.auto');//用户设置了自动登录
    if(!empty($auto)){
    cookie('auto',encrypt(serialize($data)));//将登录信息保存到cookie,其中$data里含有加密后的帐号,密码,和用户的IP,这里的cookie已在全局中设置过期日期为一周
    }
  • 用户关闭浏览器再次访问网站时,进行自动登录


  • if (!is_login()) {//是否未登录状态?
    $auth=cookie('auto');
    if(!empty($auth)){//是否未有自动登录cookie?
    $data=unserialize(decrypt($auth));
    if(!empty($data) && !empty($data['username']) && !empty($data['password']) && !empty($data['last_login_ip'])){
    $user=M('Member')->where(array('username'=>$data['username'],'password'=>$data['password']))->find();
    if(!empty($user['id'])&&($user['last_login_ip']==get_client_ip())){//cookie帐号密码是否有效?//IP来源是否相同?
    login_session($user['id'], $user['username'], $data['last_login_ip']);//用户自动登录成功
    }
    }
    }
    }
  • 优点:大多数场景下可使被XSS攻击盗取的cookie失效。缺点:由于IP存在多台电脑共用的可能,对绑定做不到十分精细。

    3:为COOKIE添加httponly配置

    1. 最新版本的thinkphp已经支持此参数。

    2. 此参数可以保证cookie只在http请求中被传输,而不被页面中的脚本获取,现市面上绝大多数浏览器已经支持。

    4:HTML5值得观注的新特性: