在您的网站被黑之前要做的事情
Joomla经常被无知的批评家指责为不安全。他们知道得太少了!事实是,没有任何系统是完美的,除非你尽力保护它。大多数人听到“安全”这个词就会害怕。你不必这么做!如果你知道需要做什么,在哪里做,以及如何完成,保护你的网站其实相当简单。本文可能只是触及了表面,但会为你提供足够的建议,让你能够通过几个简单步骤,大幅度提高你网站的安全性。
如果你是Joomla论坛的常客,你一定见过一些用户焦急的帖子,他们的网站被黑了。事实是,所有网络应用都面临着同样的现象,这不是因为它们本质不安全,而是因为大多数人根本不知道他们应该做什么来保护他们的网站。安全并不难,但也不容易理解。它有点像避孕。它是必要的,但没有任何方法是不容置疑的。因此,本文并不是要成为Joomla安全指南的完整指南,但——非常类似于Joomla安全清单——它只是一套你可以轻松遵循的指导方针,让你有额外的安心感。
备份
墨菲定律规定,当你无法恢复到最后已知的好状态时,灾难就会发生。不要在没有备份的情况下陷入困境!大公司失败的原因是因为他们没有备份,或者只有部分备份。在谈论Joomla网站时,你需要对文件和数据库进行完整的备份。制作完整网站备份的最简单方法是使用Akeeba Backup,这是一个活跃开发中的流行免费备份组件。当然,我有点偏见——我是它的主要开发者——但你总是可以信任JED评论并自己判断。
一个重要因素是你必须保留多少备份以及如何保存它们。至少保留一个月的每日备份,或者六个月的每周备份。这样,即使你的网站受到攻击,你也可以及时回滚到安全的已知良好状态。不要只将备份保存在与你的网站相同的服务器上!将它们下载到你的硬盘驱动器上,并在不同的可移动介质上保留至少两份副本,例如CD-ROM、闪存盘或外置硬盘,最佳情况是每个副本存储在不同的物理位置。甚至更好的方法是使用云存储服务——例如Amazon S3、DropBox、Wuala或Ubuntu One——以安全地存储你的备份存档的一个副本。你永远不能对保护你的备份文件太小心!
昨天升级
升级你的核心Joomla!安装和扩展的最佳时间是昨天,而不是明天!当然,你不能回到过去,这就是为什么保持与安全发布同步至关重要。你必须订阅JSST新闻源,如果你还没有的话,以及密切关注易受攻击的扩展列表。不言而喻,你还必须订阅你网站上安装的所有扩展的新闻源。一旦有新版本发布,立即升级。在残酷的互联网世界中,懒惰是一种致命的罪恶。
你可能想在将升级应用到你的实时网站之前先对其进行测试。Akeeba Backup再次是你的朋友,因为你可以使用你的备份——你确实备份了,对吧?——来创建一个子域名或本地服务器上网站的“克隆”,应用升级并确保一切运行正常。
阻止用户62
你不知道用户62是谁?简单来说,当你在你的网站上安装Joomla!时,它会创建一个超级管理员账户,具有已知用户名(admin)和已知用户ID(62)。这过去被黑客利用来访问 unsuspecting sites。最佳做法是创建一个新的超级管理员用户,并阻止或降级默认的admin用户到注册用户级别。
引入多因素后端认证
所有Joomla!网站有一个共同点:后端URL。它总是类似于http://example.com/administrator。你知道什么让我烦恼吗?这容易受到暴力攻击,即有人尝试任意用户名和密码,直到他们可以成功登录为超级管理员。解决这个问题的最佳方法是给他们的黑客之路设置更多障碍。
天才jSecure Authentication插件让你定义一个必须知道的秘密词,才能访问后端登录页面。如果你的秘密词是“foobar”,你必须输入类似http://example.com/administrator?foobar的内容到你的浏览器中,才能登录到网站,否则你将被重定向到首页。
另一种非常有效的保护手段是使用密码保护管理员目录。大多数,如果不是所有,托管控制面板都允许你设置目录的密码保护。好吧,做吧!保护你的管理员目录,这样你需要输入用户名和密码才能看到后端登录页面。与jSecure Authentication结合使用,你将有一个非常强大的后端保护设置。
神秘有时是一件好事
尽管我不是隐藏性安全支持的倡导者,但有时这确实是一种阻止脚本小子或让半认真黑客的日子变得艰难的好方法,促使他们寻找更容易的目标。为此,确保所有对您网站正常运行不必要的内容对全世界不可访问是个好主意。我在10月份写过一篇关于这个主题的文章,你应该读一读。请注意,如果你选择实施这些规则,它们是有意过度保护的。你可能需要为直接调用的PHP文件添加例外,例如VirtueMart的支付网关回调脚本,或者eXtplorer的fetchscript.php文件。
后端ACL
当我告诉你默认的Joomla!后端角色并不像你想的那么安全时,请相信我。特别是管理员角色,它本质上非常宽容,不能提供足够的隔离来防止内部潜在的攻击。我无法进一步评论,因为这会打开一个潘多拉的盒子,但我确实成功地提升管理员权限到超级管理员角色。我建议你使用第三方ACL解决方案来限制后端用户仅对特定核心和第三方组件的访问,这取决于用户在网站管理流程中的角色。感谢核心开发者的努力,Joomla! 1.6将能够定义这样的ACL,而不需要第三方扩展。
文件和目录权限
这个话题可能会触动一些人的痛处,特别是考虑到Joomla!驱动的网站广泛使用低标准的主机。如果你的主机没有使用suPHP——它实际上负责管理权限——那么为你的文件和文件夹使用一套强大的权限是有意义的。如果你对权限、所有权、用户等一无所知,你可能想先读一读我简洁的网络服务器管理简介。
首先,确保你的网站上每个文件都是通过FTP上传的,这样你的账户用户就成为了文件的所有者。然后,确保所有目录都有0755权限,所有常规文件都有0644权限。最后,在Joomla!的全局配置中启用FTP层。这确保了大多数已知的破解脚本都会失败,这些脚本需要PHP能够修改你服务器上的任意文件。
日志搜索
这是一个经常争论的技术,但我发现它很有用。如果您的网站遭到破解,这也是一种必要的后续操作,即回溯问题。无论如何,整个想法是下载您网站的访问日志,并使用一个合适的工具分析它,寻找不应该存在的一切。例如,“不应该存在”的东西包括
- Base64编码的数据
- SQL命令
- 脚本标签
- 不可打印的Unicode字符
网上有大量关于日志搜索的资源。不要为此烦恼太多,因为,正如我所说的,它只是监控您网站健康的一个工具。大多数时候,你无法对您网站的攻击采取任何行动,但你至少可以将其运行在本地的副本上,了解其影响——并检测潜在的安全漏洞。
修改过的文件可能会让你的网站陷入困境
这是最后一步。它不是为了保护你,而是作为早期预警系统。设置限制和控制是必要的,但前提是它们不能失败。爱因斯坦直言不讳地说:“只有两样东西是无限的,宇宙和人类的愚蠢,我不确定前者。”一个天才的破解者,或者一个愚蠢的脚本小子,可能会找到绕过你的安全控制并获得对你的网站未经授权的访问的方法。他们甚至可以在昨天攻击你,并在今天利用他们的后门。
即使在这种情况下,你也需要知道你已经遭到了破解,这样你才能采取行动。一种非常简单(从概念上讲!)的方法是将你网站的状态与最后一次已知的好状态进行比较。我已经编写了一个实用程序来帮助你做这件事,它操作两个备份文件,以及一篇关于如何使用它以及如何解释其结果的指南。该软件现在已稳定;它被称为Akeeba SiteDiff,并且可以从Akeeba Backup的下载部分免费获得。
总结
遗憾的是,我们空间已用尽!安全是一个庞大的话题,甚至无法容纳在一个大小合适的书中。上述内容都只是一些提示,是一些指向正确方向的好指针。每一项都需要一些阅读和一些试验错误来实现。记住,罗马不是一天建成的。一次实施一个安全检查点,并努力完善你的安全策略。这需要时间,但值得,尤其是如果你通过你的网站直接(电子商务、广告)或间接(将潜在客户引向你的业务)赚钱。在《Joomla!社区杂志》的下一期中,我将介绍更多的安全想法和实施它们的实用方法。
最后,你可能想知道你是否真的需要所有的这些安全措施。答案是,是的,你需要!不要认为只有拥有大量观众的网站才会受到破解的威胁。我见过每月只有30个访客的网站被黑。为什么?我想我们永远也不会知道,因为破解者的动机可能是多样的,模糊的,甚至超出了我们的理解。你的网站可能是一个潜在破解者寻求肾上腺素激增的目标。你确定你想作为一个待宰的羔羊等待他吗?我不这么认为。
《Joomla社区杂志》上发表的一些文章代表了作者对特定主题的个人观点或经验,可能不代表Joomla项目的官方立场
通过接受,您将访问由https://magazine.joomla.net.cn/之外的第三方提供的服务
评论