你用js加密干嘛?你传递登陆信息到验证的应用中,这个应用加密相关信息后返回给其他程序即可。其他程序都需要有一份解密程序是真的,要不无法从加密数据中获取实际的内容了。如多个子域名共享cookie,验证信息发送到验证的2级域名站点,验证成功后将加密信息保存到cookie中,domain设置为顶级域名实现多个子域名共享,这样其他站点引用获取到这个加密cookie解密后就可以得到需要的内容了。

解决方案 »


  1. 因为用的是ajax调用,通用登录程序里只有一个页面login,不想在页面间跳来跳去,只在login页面通过ajax得到加密密文后传递给应用进行验证,验证必须是各应用各自进行验证,因为有不同的方法,我说的是验证前的信息处理
      

  2. 那不就一个站点做验证,验证成功后加密相关数据返回,ajax获取到加密数据后分发给其他应用,用js加密没意义
      


  3. 我不是用js做加密,而只是js来调用加密页面(也是服务端的php处理),我只是觉得这样暴露了加密的页面地址是否不太安全,毕竟一般的验证只是传递密码给服务端,服务端只返回成功还是失败,而这个需要返回加密密文
      


  4. 这个得看你的应用怎么实现了。。比如asp.net可以将session保存到数据库实现多域名共享,你可以将数据直接保存到数据库中,其他网站只需要得到session的cookie id即可。你一定要返回一些标志性的数据然后进行相关操作,然后浏览器记住登陆状态什么的,或者生成一个cookie记录session对应的cookie id之类
      

  5. 用户少的情况下可以用session保存登录状态,用户多的情况下,为节省服务器消耗,使用cookie保存登录信息
      

类似问题 »