我知道使用 SSL 保护所有页面会降低网站速度并增加服务器资源的负担。
我还看到许多其他网站仅保护他们的登录和注册页面,我也想在运行 apache 的服务器上这样做。
为什么仅保护输入用户密码的页面而不是整个网站被认为是不好的做法?
此外,我不应该使用类似的方法https://mysite.com/login.php
,而应该像这样更改为 https https://secure.mysite.com/login.php
:?
答案1
答案2
我知道使用 SSL 保护所有页面会降低网站速度并增加服务器资源的负担。
确实如此。您不应该一时兴起就使用 SSL。您应该对此做出明智的决定。虽然 SSL 确实带来了安全优势,但它是以牺牲性能为代价的。重要的是要记住,您始终可以采用技术解决方案来解决性能问题,因此我会首先确保您对安全性感到满意,然后再尝试处理您可能遇到的任何性能问题。
主要的结论是,如果 SSL 解决了你的安全问题,那就使用它吧。
为什么仅保护输入用户密码的页面而不是整个网站被认为是不好的做法?
不是。不一定。你真的需要看看你试图保护什么数据,以及你试图阻止哪些攻击。
需要考虑的常见领域:
- 您的整个网站上是否存在敏感数据,还是只有有限的几页上存在敏感数据?
- 在某些页面上而不是在所有页面上实施 SSL 会很容易吗?
- 您是否正在处理任何信用卡数据
- 是否有用户使用私人数据登录您的网站和会员页面
- 您是否通过表格捕获数据,它是什么类型的数据?
有时您可能只想保护网站的部分内容,例如登录页面和任何会员页面。网站面向公众的部分可能不需要 SSL,而将其设为 HTTP 可以为您带来显著的性能优势。
有些人会在整个网站上实施 SSL,因为这样可以简化事情。
当然,实施 SSL 可能很棘手,有时尝试在一个页面上使用 SSL 而在另一个页面上不使用 SSL 可能意味着更多的工作。整个网站上的 SSL 有助于确保网站的未来发展,减少开发人员的复杂性,可以避免向用户显示错误和错误消息(或者更糟的是,意外地通过 HTTP 泄露敏感数据)。
另外,不要使用类似https://mysite.com/login.php,我是否应该这样更改为 https: https://secure.mysite.com/login.php?
使用 PHP 实现登录(和安全性)的方法有很多,但您在这里并没有真正深入讨论,因此无法安全地发表评论。您应该首先概述要实现的目标,然后概述如何实现它,然后就可以开始考虑替代方案的利弊了。
答案3
SSL 需要相当多的额外处理时间。对于低带宽网站,SSL 所需的额外处理并不明显。但对于 Facebook、Twitter 和 Flickr 等流量大的网站,SSL 造成的负载非常大,以至于他们必须使用专用的 SSL 编码/解码硬件。
所以基本上是的,尽量减少使用 SSL 的页面数量是有意义的。这就是为什么您经常看到银行网站仅通过 https 保护实际帐户页面。主页/登录页面通常是普通的 http。
另一方面,除非您真的是一个像 Twitter、Facebook 或 Gmail 这样的网站,否则担心这一点有点过早优化。如果可以的话,先做简单的优化。当您的网站最终获得大量流量时,请注意这个问题并注意升级策略。
我老板有一句话:这是一个令人高兴的问题。首先解决用户不足的悲哀问题,然后你会很高兴遇到需要你重构架构的问题。