将 App Key 存储在 Laravel 中的最佳做法

Best practice to store App Key in Laravel

我对此进行了大量研究,但似乎找不到明确的答案。显然,如今安全是一个大问题,黑客攻击遍及各大公司,这些公司在安全方面投入了数百万美元,但他们仍然遭到黑客攻击。

我经常在 Laravel 上工作,并与 Hostgator 或一些类似的知名公司使用共享主机。 Laravel 带有一个内置函数,用于加密数据库信息并在用户请求时解密给用户。

但是,我对这实际上有多安全有疑问。如果有人进入我的 cPanel,我用于加密的应用程序密钥就在他们面前。当然,我的 cPanel 密码是由 Hostgator 自动生成的密码,它完全是乱码,到处都是分号和字母数字字符串,因此不容易猜到。

但我正在努力学习更多有关安全的知识。如果我 env 文件中的应用程序密钥在我的 cPanel 登录后被安全锁定,Laravel 是否内置于“encrypt()”方法 "enough" 以调用应用程序 "secure"? Laravel 或我的主机提供商是否有其他措施可以使它比严格的密码更安全?是否有某种通过不位于 cPanel 区域的外部源引用应用程序密钥的做法?所以即使我的 cPanel 被黑了,我的应用程序密钥也不会在那些文件中并暴露出来?

我不是安全专家,但根据我在高度安全的公司工作的经验,我可以分享几点。

首先,Laravel本身没问题。您通常可以信任开源软件,因为它是透明的,并且可以及早发现和解决安全漏洞。所以你不需要改进Laravel,直接使用它,最好是LTS版本。

那么,CPanel 就是一个负担。您应该尽量减少系统上的弱点,即那些可以从外部访问的弱点。获取 VPS 或私人服务器并通过 SSH 访问它,不要在其上使用 CPanel 和 PhpMyAdmin 等工具。您拥有的与外部世界通信的软件越少,您就越不容易受到该软件中的错误的影响。

在我目前的公司中,生产服务器只能通过 SSH 从 单个 IP 地址访问,即开发服务器的地址。所以我先登录到开发服务器,然后从那里登录到产品。它拒绝来自所有其他 IP 的所有连接。

如果您仅限于使用 CPanel 或类似工具,请考虑使用 HTTP Basic Auth 保护登录页面,一些托管服务提供商允许这样做。

您还想使您的系统和软件保持最新。也不是太新,因为它可能有尚未发现的错误。我们的 devops 更喜欢让它落后几个小版本,这样社区就有时间测试它并为你破解。

这就是我作为网络开发人员所知道的一切,当然有特殊的工具和 ddos​​ 保护服务,但这超出了开发人员的关注范围。如果你只是按照这些步骤,你应该是安全的。希望能有所帮助,干杯:)