PHP-安全性最好的方法是什么?
保护使用" PHP"开发的Intranet网站免受外部攻击的最佳方法是什么?
解决方案
如果位于内部网络上,为什么甚至可以从外部访问该应用程序?防火墙规则至少应到位。
我们只能允许来自php应用程序本身的内部IP的访问。也不要忽略通常的安全性和最佳做法。输入验证和输出编码(仅白名单),带哈希密码的用户帐户等。
最好的方式?禁用直接外部访问!
如果员工需要使用它(例如Extranet样式的站点),则应将其设置为VPN。通过VPN,我们可以使用更多的身份验证选项,其中大多数选项比使Intranet服务器可以从Internet访问更为安全。
另一个选项(仅在数据是公共安全的情况下才有效)正在计划Intranet服务器将数据推送到可从外部访问的另一服务器。我说推送是因为我们确实不希望该服务器访问网络。让网络服务器完成这项工作。
最好的保护方法?不要将其连接到网络。让用户使用一个运行Mosaic的单一控制台从物理上进入一个有防护的房间。
哦,我们要它易于使用吗?
- 始终验证可能来自不受信任来源的每个输入。
- 不要相信任何数据源。
- 在存储密码时,始终存储密码的加密哈希。
- 存储密码时,切勿直接存储密码。
- 切勿收集或者存储我们不需要的任何数据。
- 切勿让自己动心添加额外的铃铛和口哨声。
- 阅读Bruce Schneier撰写的有关安全性和加密的所有内容。
如果我们忘记了这些简单的规则,我们会发现应用程序像Yahoo邮件一样在世界各地的报纸头版上都有主演。
如果可能的话,我会回应@Oli并偏爱VPN方法。但是,如果出于任何原因需要更多的任意访问权限,则应使用SSL保护任何身份验证。而且,除了密码验证/ IP地址验证之外,值得一提的是将SSL与客户端证书一起使用。
这是一个令人深思的发人深省的问题,令我们惊讶的是,我们还没有得到更好的答案,这让我感到惊讶。
概括
我们将为外部应用程序执行的所有操作,然后再执行一些操作。
思考过程
如果我对理解正确,那么我们会提出一个问题,很少有开发人员会问自己。大多数公司的纵深防御能力都很差,一旦有攻击者进入,他就进入了。显然,我们希望将其提高一个层次。
那么,我们正在考虑什么样的攻击?
如果我是攻击者并且正在攻击Intranet应用程序,那么我一定可以通过某种方式访问网络。这听起来似乎并不困难,但我可以尝试进行鱼叉式欺骗(将电子邮件定向到我们组织中的个人,其中包含恶意软件附件或者指向安装恶意软件的站点的链接),以便在内部计算机上安装特洛伊木马。
完成此操作(并控制了内部PC)后,我将尝试对所有Internet应用程序尝试的所有相同攻击。
但是,这还不是故事的结局。我有更多选择:如果我们有一台用户的PC,那么我很可能可以使用键盘记录器来收集用户名和密码,以及查看所有电子邮件中的名称和电话号码。
有了这些,我也许可以直接登录到应用程序。我什至可以学习管理员用户名/密码。即使我不这样做,名单和电话号码以及对公司行话的感觉也使我对通过社交方式进入公司内部更广泛的途径颇有见识。
推荐建议
- 首先,在所有技术解决方案之前:培训用户安全性
保护Web应用程序的常见答案: