代码之家  ›  专栏  ›  技术社区  ›  halfdan

PHP安全会话

  •  6
  • halfdan  · 技术社区  · 16 年前

    我正在创建一个类似于phpmyadmin(数据库管理UI)的应用程序。用户需要根据数据库对自己进行身份验证,应用程序需要以某种方式存储凭据。SSL不是所有安装的选项。

    • 想法2:登录表单创建随机的blowfish secret(javascript),用户发送登录凭证,应用程序加密用户/密码并将其存储在会话的服务器端,密钥存储在cookie中并针对每个请求发送。


    想法二:中间人攻击的问题。(发送密钥+凭据)

    还有其他建议吗?批评?

    2 回复  |  直到 16 年前
        1
  •  5
  •   Saul    16 年前

    你所说的问题不是绝对意义上可以解决的。没有一台服务器是100%安全的,每一次“中间人”攻击都可以更进一步。

    在挫败“中间人”攻击方面,uber的做法是使用 one time pad ,脱机预共享。这就是安全机构所做的-所有其他选项都会使应用程序或多或少地依赖于服务器和用户代理之间的设备。所以你需要决定你的容忍度。

    一种相当安全的身份验证方法是 zero knowledge proof . 它只要求应用程序知道用户的公钥。没有密码,没有秘密。关键是,当用户想要登录时,应用程序应该用该用户的公钥加密的随机消息来响应。如果另一方发回正确的随机消息,则表示拥有匹配的私钥。因此,用户已通过身份验证。为了防止窃听,在发回答案之前,让useragent用应用程序的公钥加密正确的答案。然而,为所有这些实现必要的功能和一个像样的GUI将不是一个简单的任务。

        2
  •  2
  •   Jim    16 年前

    对于idea 1,您说即使是普通用户也可以访问会话文件,这可能是真的,但是您可以始终设置会话保存数据的位置,并使数据只能由您的域用户/组访问(假设您为每个域创建了一个新帐户)。这将确保有人必须在您的代码中拦截一个漏洞才能访问该数据。因此,它最终将归结为您编写代码(或您使用的代码)的安全性。