共享主机并担心安全性?这是你需要知道的

共享主机。这是便宜的选择,不是吗?对于庞大的人口群来说,这是他们托管网站或网络应用程序所需要的全部。如果做得好,共享托管将具有可扩展性,快速性和安全性。

但是如果做得不好,会发生什么呢?

那么,危险的安全问题开始蔓延。当您的网站有被损坏的风险或您持有的私人数据被泄露时。但是不要担心。绝大多数Web主机都有不错的安全措施。这只是您必须警惕的夜间廉价主机。

我们建议InMotion Hosting与SSD存储共享的主机。

我们要探索围绕共享主机的安全问题。但是首先,让我们谈谈使共享托管平台安全的原因。

使安全Web主机安全的原因

关于共享托管,应考虑一些突出的安全注意事项

  • 服务器上的每个用户都应与其他用户隔离,并且不能访问或修改其他用户的文件。
  • 服务器上托管的网站不应影响其他用户。
  • 服务器应定期进行修补,更新和监控,以解决体系结构安全问题。
  • 每个用户都应将自己的用户隔离数据库访问,不应允许更改其他用户的存储记录或表权限。
  • 同样,大多数Web主机都满足这些共享产品的要求。但是,如果您正在考虑在一台服务器上托管多个网站,或者想知道您的托管公司是如何堆叠的,或者甚至想启动自己的托管公司,并渴望解决如何保护用户的安全,那么请阅读

    ,但是首先,免责声明

    在我们深入探讨共享主机上的常见攻击之前,我只想声明这篇文章不会(并且不应被视为)潜在安全问题的详尽列表。

    总之,安全性很大。您可以通过多种方式来破坏网站。对于共享主机,这增加了一倍。永远不会在一篇文章中涵盖它们。

    如果您对安全性抱有偏执,请购买VPS或专用服务器。在这些环境中(大部分情况下)您可以完全控制发生的事情。如果您不确定不同类型的网络托管,请查看我的同事James Bruce的这篇文章。

    我还应强调,该文章不应被理解为对共享网站的攻击托管。相反,这只是围绕此类网络托管的安全问题的纯学术研究。

    目录遍历

    让我们从目录遍历(通常称为“路径遍历")攻击开始。这种攻击使您可以访问存储在Web根目录之外的文件和目录。

    用简单的英语?好吧,让我们想象一下,爱丽丝和鲍勃使用同一台服务器托管他们的网站。爱丽丝的文件存储在/ var / www / alice中,而鲍勃的文件可以存储在/ var / www / bob中。此外,我们假设服务器上还有一个文件夹(/ usr / crappyhosting / myfolder),其中包含未加密的纯文本文件(我们将其称为pwd.txt),其中包含系统用户名和密码。

    With我到目前为止好。现在,假设鲍勃(Bob)的网站提供了本地生成的PDF文件,并且该本地文件在URL中被引用。像这样的东西:

    http://example.com/file?=report.pdf

    如果我用更改目录的一些UNIX参数替换了“ report.pdf"会发生什么?

    http://example.com/file?=../alice/

    If the server is configured incorrectly, this would then allow you to see Alice’s document root. Interesting, but, we’re far more interested in that juicy passports file. Accio passwords!

    http://example.com/file?=../../../usr/crappyhosting/myfolder/pwd.txt

    真的很容易。但是我们如何处理呢?这很容易。

    听说过一个鲜为人知的Linux实用程序 chroot 吗?您可能已经猜到了它的作用。它将Linux / UNIX根目录设置为任意文件夹,从而使用户无法退出它。有效地,它阻止了其目录遍历攻击。

    在不违反法律的情况下,很难判断您的主机是否已经部署了该方法。毕竟,要对其进行测试,您将访问您无权访问的系统和文件。考虑到这一点,也许与您的Web主机进行对话并询问他们如何将用户彼此隔离是明智的。

    您是在操作自己的共享主机服务器,而不是使用chroot保护您的主机吗?用户?诚然,改变环境很难。值得庆幸的是,有许多插件可以简化这一过程。尤其要看一下mod_chroot。

    命令注入

    让我们回到Alice和Bob。因此,我们知道Bob的网络应用程序中有一些……哎呀……其中存在安全问题。其中之一是命令注入漏洞,该漏洞使您可以运行任意系统命令。

    Bob的网站允许您在另一个网站上运行“ hohois"查询,然后该查询显示在浏览器中。有一个标准的HTML输入框,该框接受域名,然后运行whois系统命令。该命令通过调用system()PHP命令执行。

    如果有人输入以下值会发生什么?

    example.com && cd ../alice/ && rm index.html

    好,让我们对其进行分解。如果您已经阅读了我们先前于2010年出版的``Linux入门指南''电子书,或者浏览了Linux命令行备忘单,其中的一些内容可能对您来说是熟悉的。

    首先,它将在example.com上运行whois查询。然后它将当前工作目录更改为Alice的文档根目录。然后它将删除名为“ index.html"的文件,该文件是其网站的索引页。这不好。不,先生。

    因此,作为系统管理员,我们如何应对这一问题?好了,回到前面的示例,我们总是可以将每个用户置于他们自己的隔离的,经过消毒的,chroot的环境中。

    我们还可以从语言层面来解决这个问题。可以(尽管可能会破坏事情)从语言中全局删除函数声明。也就是说,可以从用户有权访问的语言中删除功能。

    特别是在PHP中,您可以使用Runkit(PHP的官方工具包,用于修改该语言的功能)来删除功能。那里有很多文档。仔细阅读。

    您还可以修改PHP的配置文件(php.ini),以禁用经常被黑客滥用的功能。为此,请在服务器上打开一个终端,然后在文本编辑器中打开php.ini文件。我喜欢使用VIM,但也可以使用NANO。

    找到以disable_functions开头的行,并添加您要禁止的函数定义。在这种情况下,它将是exec,shell_exec和system,尽管值得注意的是,还有其他可被黑客利用的内置函数。

    disable_functions=exec,shell_exec,system

    基于语言和解释器的攻击

    因此,让我们看一下PHP。这是使数量惊人的网站蓬勃发展的语言。它还具有许多特质和怪异的行为。像这样。

    PHP通常与Apache Web服务器结合使用。在大多数情况下,使用此配置无法加载该语言的多个版本。

    为什么会出现这个问题?好吧,让我们想象鲍勃的Web应用程序最初是2002年构建的。那是当Michelle Branch仍然位居榜首时,Michael Jordan仍在为华盛顿奇才队效力,而PHP是另一种语言。

    但是Bob的网站仍然有效!它使用了一大堆已停止使用和不推荐使用的PHP函数,但是可以正常工作!使用现代版本的PHP会有效地破坏Bob的网站,为什么Bob要改写他的网站以迎合其网络托管商的异想天开?

    这应该使您了解一些网络托管商所面临的困境。他们必须在保持体系结构合理和安全的服务之间保持平衡,同时又要与确保付费客户满意的服务保持平衡。

    因此,看到较小的独立主机使用较旧的版本并不少见

    看到较小的独立主机使用旧版本的PHP,并可能使用户面临安全风险。

    为什么这是一件坏事?首先,它将使用户面临许多安全风险。与大多数主要软件包一样,PHP也在不断更新,以解决不断发现(和公开)的众多安全漏洞。

    此外,这意味着用户无法使用最新(也是最大的)漏洞。 )语言功能。这也意味着保留了由于某种原因而过时的功能。在使用PHP编程语言的情况下,这包括用于与MySQL Relational Database System交互的可笑的(最近弃用的)mysql_函数,以及允许用户导入自己的语言扩展名的dl()。 p>

    作为用户,您应该能够看到服务上正在运行哪个版本的解释器。如果它已过时或包含许多安全漏洞,请与您的主机联系。

    系统管理员呢?您在这里有一些选择。第一个(也是最有前途的)是为每个用户使用Docker。 Docker允许您同时运行多个隔离的环境,就像虚拟机一样,尽管不必运行其他操作系统。结果,这很快。真的,真的非常快。

    简而言之?您可以为大多数用户运行最新,最强大的最新解释器,而使用旧应用程序且使用古老的,不推荐使用的解释器的客户可以这样做,而不会损害其他用户。

    语言不可知的优势。 PHP,Python,Ruby。随你。都是一样的。

    别做噩梦。

    这篇文章旨在做几件事。首先,它是要引起您注意的是Web托管公司为了确保其客户及其数据的安全性而必须面对的安全性问题。

    它还旨在向您展示网站如何托管在同一服务器上可能会相互影响。想要对此有所作为吗?开始遵循良好,安全的编码标准。特别是,请在前端和后端开始对输入内容进行清理。

    新的HTML5表单验证功能是一个好的开始。我们之前在HTML5指南中已经讨论过这一点。总之,我们可以通过成为更好,更尽责的程序员来提高网站的安全性。

    一如既往,我愿意听取您的想法。

    照片来源:每个人都需要一个黑客(Alexandre Dulaunoy),出租车窗口上的贴纸(Cory Doctorow),服务器室(Torkild Retvedt),Linux书籍和杂志(library_mistress ),PHP Elephant(Markus Tacker)

    标签: 在线安全 网络托管