Php http应该用于https登录后续页面吗?

Php http应该用于https登录后续页面吗?,php,zend-framework,login,https,passwords,Php,Zend Framework,Login,Https,Passwords,我在SO上看到过许多线程,它们表明没有SSL就无法安全地传输密码。所以假设我有https登录页面,但是 我是否应该在用户通过https进行身份验证后切换回http(假设登录后没有发送敏感信息)?因为它可能会更快地加载页面 它是否会在开发方面产生额外的开销(使用Zend框架)?比如维护不同的目录结构等等 是的,您可以在传输用户密码后切换回http。如果内容上没有敏感数据,则无需crtypt所有内容。当您对所有站点进行加密时:服务器需要对所有数据进行加密,并且您的服务器的性能比不加密时最差 如果数据

我在SO上看到过许多线程,它们表明没有SSL就无法安全地传输密码。所以假设我有https登录页面,但是

  • 我是否应该在用户通过https进行身份验证后切换回http(假设登录后没有发送敏感信息)?因为它可能会更快地加载页面

  • 它是否会在开发方面产生额外的开销(使用Zend框架)?比如维护不同的目录结构等等

  • 是的,您可以在传输用户密码后切换回http。如果内容上没有敏感数据,则无需crtypt所有内容。当您对所有站点进行加密时:服务器需要对所有数据进行加密,并且您的服务器的性能比不加密时最差
  • 如果数据不敏感,您可以在对用户进行身份验证后切换回http,以获得较小的速度优势。如果站点上出现任何类型的敏感数据(如用户配置文件等),您必须记住再次切换到https。实际上,让整个会话始终加密可能更容易,这样您就不必担心根据页面内容打开和关闭加密

  • SSL对开发人员是透明的,您创建的应用程序与创建非安全服务器的应用程序完全相同。您确实需要有一个SSL证书,您可以自己购买或生成,并设置服务器来处理它。然后根据协议(http或https),您的会话将自动加密或不会自动加密。因此,需要为需要加密的页面设置正确的https://链接,并为其他页面设置标准的http://链接


  • SSL连接加密和解密所需的时间(初始化后)与传输数据所需的时间相比可以忽略不计。所以不,它不会加载得更快


    额外的文件夹取决于您的服务器,而不是您的框架。如果服务器通过/httpsdocs文件夹或其他东西路由所有https请求,则可以在其中添加.htaccess,从而将其重定向到/httpdocs文件夹。

    VolkerK是正确的,但他的响应有点谨慎。会话可能会被各种方法破坏。有很多方法可以解决这个问题(例如,使用缓存的javascript客户端针对每个页面生成的一个固定的挑战生成哈希),但是这些方法很混乱。到目前为止,最简单的解决方案是始终使用SSL。但是,您可以考虑使用与会话Cookie结合的摘要认证。 托尔·瓦拉莫错了。现在带宽非常便宜,但很难实现的是消除延迟,而延迟是HTTP传输速度的主要决定因素(其中大部分内容相对较小)。对于HTTP请求,到服务器至少有两次往返-TCP握手,然后是请求/应答。它将根据文件大小和其他考虑因素而有所不同,但通常往返延迟占获取对象所用时间的50-70%

    使用Keep alives消除了其中一个往返,因此大大提高了吞吐量

    对于SSL,至少需要一个额外的往返(用于恢复现有SSL会话)和多个初始SSL协商。真正的杀手是,微软的非标准SSL实现意味着,在与MSIE客户端通话时,除了MSIS之外,您不能使用keep alives(有关更多信息,请参阅mod_SSL文档)。

    还要记住,(http-)客户端必须随每个请求发送会话标识符。如果您要切换回http,则此id是一个简单的cookie或请求头,可能会被嗅探,会话可能会被劫持。哎呀,缺少一个词:“如果您要切换回http,且此id是一个简单的cookie…”