聊聊php安全之其他安全提示

其他安全提示

验证

切勿单纯依靠客户端验证,因为它可以轻松绕过。例如,攻击者可以禁用/删除页面源代码中的任何Javascript并提交表单而不进行任何验证。如果接受输入的脚本没有任何服务器端验证,则可能会利用本文中提到的漏洞之一。服务器/客户端验证的组合是最理想的。

黑名单

正如我们所确定的,有很多方法可以提出相同的请求或行动。在大多数情况下,黑名单可以规避,有时很难包括所有可能的禁止输入。尽管有些案例可以列入黑名单。例如,拥有攻击中常用的字符串列表可以帮助阻止自动化机器人/脚本。当被用作唯一的安全措施时,黑名单可能很糟糕。

软件更新

这不能够强调。在PHP安全性和所有其他形式的安全性方面,保持软件最新是至关重要的。更新通常包含修补各种漏洞(公开或不公开)的安全修复程序。许多公司的关键服务器和服务运行在过时的操作系统上,原因在于其应用程序与较新版本软件的兼容性问题,对安全性的忽视或缺少策略。然而,这使他们的系统和服务面临攻击

研究

研发人员通过在线搜索找到他们面临的代码或项目问题的答案的解决方案是非常普遍的。
这是非常正常的,它是互联网的强大特征之一。
然而,人们通常会复制他们在网上找到的任何代码片段,只是因为它拥有很多投票或者因为它似乎有效。这是错误的,原因很多。有许多来源具有不安全或过时的代码片断,并且通过使用它们,你将Web应用程序/服务器置于危险之中。
另一个不要盲目复制’现成’代码的原因是,在某些时候,你最终会得到一个来自不同人的不同代码块的Web应用程序,你不知道它是如何工作的,为什么它以这种方式工作,如果它工作正常正如它应该。
花时间学习和理解你感兴趣的各种功能或技术背后的机制是非常重要的。
你不仅可以识别不安全或错误的代码,还可以用自己的风格编写自己的脚本。
排除自己的代码比其他人更容易。

速率限制+锁定

如果你正在构建一个使用登录系统的Web应用程序或基于用户输入显示动态内容,那么你应该考虑实施速率限制。
速率限制是指系统配置为只允许在一个时间窗口内处理/服务一定数量的请求。
例如,允许在20秒内完成10个请求。根据情况,如果超出限制,则可以删除,阻止或排队请求。
这对于需要大量请求来破解密码的登录表单中的暴力攻击特别有用。
防止其他攻击也很有用,因为它会显着减慢启动数百或数千请求来识别漏洞的自动扫描器,爬虫或机器人。
这只能延缓放慢攻击时间,因为他们的脚本还会一直不断的在攻击。
如果是登录表单,如果某个帐户有N次未成功登录尝试,则应该阻止N次的时间。
结合通知系统来提醒管理员,这可以有效地缓解各种攻击。

强大的密码执行

在本系列中,我们谈到了密码存储在Web应用程序中的重要性。然而,管理员和用户使用强密码也同样重要。Web应用程序不应允许用户为其帐户定义弱密码,因为这会使其破解更容易。
即使使用了限速或锁定机制,如果密码非常常见或容易,那么可能会在允许的失败/速率限制内猜测。

弱密码

如果密码符合以下一个或多个类别,则可将其限定为弱密码:

  • 太短(<6个字符):ex passme
  • 仅由数字组成:ex 181759
  • 仅由小写字符组成:ex mypassword
  • 仅由大写字符组成:ex MYPASSWORD
  • 包含词典和/或常用词汇:房子,狗,汽车
  • 该软件是否为默认值:ex admin,root,password
  • 按顺序排列字母或数字:ex qwerty123
  • 包含用户名:ex kevin1151(用户名是“kevin”)

强密码

一个强大的密码应该

  • 超过8-10个字符
  • 以随机顺序包含大写字母,小写字母,数字和符号的组合
  • 没有重复的字符或模式
  • 不包括常用字典或词典
    强密码示例:8a <:7],)> En1C $ M {JH> 08hv!s

多因素认证(MFA)

MFA是指用户必须使用多种方法对系统进行身份验证的过程。
第一种也是最常见的认证方法是密码。但是,密码可能被破解/泄露或被盗。
在MFA中,用户需要提供其他验证方法,例如通过电子邮件,电话(短信或语音电话)或令牌设备进行验证。这确保了即使用户的密码被泄露,他们的帐户也不会受到危害(除非攻击者可以访问受害者设置的所有认证方法)。
这很容易实现,并且在构建Web应用程序时应该考虑它。

记录

日志是系统中非常重要的一部分。
它们可用于排除错误,收集统计信息并提供有关应用程序运行状况和安全性的管理信息。
监视日志对于了解发生什么,何时发生以及为什么发生有用。
建议保留关键系统和应用程序的每日日志,并对其进行分析以识别恶意活动。理想情况下,应该将它们备份到远程位置,以免系统受到攻击时攻击者篡改。(避免将日志存储在可公开访问的目录中,并确保它们具有正确的权限。)

如何检查PHP漏洞

用安全工具检测,比如Acunetix之类的工具。
会抓取你的整个网站并自动检查漏洞,并指出哪些脚本易受攻击,以便你可以修复它们。

坚持原创技术分享,您的支持将鼓励我继续创作!