在drupal中开启SSL支持

在互联网中,"S" 是一个非常重要的字母。在互联网上的各种传输中,如果你非常关心你的数据的安全性,你对"S"一定不会陌生,比如,你会用

SFTP 而不是 FTP, 用 SSH 而不是 Telnet, 用 HTTPS 而不是 HTTP.所以,用drupal建的站中,如何开启SSH支持呢?

下面有四种解决方法,每种方法都各有利弊。你可以根据你的情况选择用不同的方法。

(注,下面所有的操作都假定你的WEB服务器已经支持SSH。如果你的WEB服务器还没有开启,请先Baidu一下如何开启)

用Drupal的加密模块(Securepages)加密登录页和admin管理页面

Secure Pages 是一个相当流行的模块。这个模块的作用是让drupal网站中的某个页面用

HTTPS。这个模块的优点是你可以有选择性的加密你认为重要的页面。它默认加密添加内容,编辑内容,任何与用户有关的页面和admin管理页面。

SSH相当耗费服务器资源。只有选择性的加密你认为非常重要的页面,这会大大降低服务器的负担。但是,session,cookie 仍然没有加密,这样,

假如一个用户在授权的HTTPS通过验证后,他再访问普通的HTTP页面,然后,黑客通过普通的HTTP页面盗取他的SESSION信息,登录我们的网站,这样就

可以取得我们认为非常机密的信息。这是一个很大的安全威胁。

优点: 相对于所有页面都用SSH加密,这种方法降低了服务器的负担。

缺点: 没有保护SESSION信息,数据仍有可能初盗.

加密模块Securepages和Securepages Prevent Hijack模块一起用

发现了这个问题后, Grendzy 又写了一个drupal模块 Secure Pages Hijack

Prevention .这个模块会对用户创建第二个cookie,标记为"secure", 当用户试图去进入HTTPS加密的页面时,程序会去检查该用户是否

有"secure"cookie,如果没有,会拒绝服务。

优点: 仍然降低了服务器的负担,并且避免了session劫持。
缺点: session劫持仍然存在可能性,有时候数据仍然以明文方式传送(这种风险有时候是可以接受的)。

用户登录后用HTTPS生成一个Session

这种方法会对所有已登录的用户提供HTTPS,让所有匿名用户仍然用HTTP, 但是也可以扩展成其它的规则。

主要的方法是修改 settings.php:

<?php
if ($_SERVER['HTTPS']) {
ini_set('session.cookie_secure', 1);
$base_url = 'https://example.com';
}
else
{
$base_url = 'http://example.com';
}
?>

这段代码的意思是:如果用户正在访问一个加密页面,那么会确保他的cookie加密启用,并且网站的 base_url 为HTTPS开头。否则,用普通的HTTP访

问。用这种cookie标记方法虽然避免了劫持,但是也有一个缺点: 如果一个用户收藏了了普通的HTTP首页面并且选择自动登录,因为他的cookie没有

一起保存,所以访问时,会被认为没有登录。

优点: 相对于每个页面都用SSH加密,仍然非常简单, 减少了Session劫持的危险.

缺点: 一定程序上对用户造成迷惑。

让每个页面都用SSL加密

这是最安全的解决办法.但是,严重地增大了服务器的负担。

你可以用Apache的 mod_rewrite 模块去实现这种方法:

RewriteCond %{SERVER_PORT} 80
RewriteRule ^(.*)$ https://%{HTTP_HOST}/$1 [R,L]

php_value session.cookie_secure 1

优点: 终极解决办法。最简单 - 不用其它任何模块.

缺点: 极大地加大了服务器的负担,需要更昂贵的硬件投入.

哪一种解决办法最好

最好的解决办法要看你的具体站点,网站的用户,安全等级需要。大多数网站根本不需要关心 HTTPS 加密。有些网站只关心性能,只关心传输过程

中的敏感数据,并不关心session劫持(例如不保存用户信用卡信息的电子商务网站)。所以,你需要权衡考虑多方面的因素来决定到底用哪一种方法。


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值