网站开发 - 安全


保护您的网页与开发网页同样重要,因为任何可能危害安全的威胁都可能损害您的商业声誉、给您带来经济损失(通过窃取您的在线存款)、损害访问您网站的客户等。

据安全专家介绍,他们会建议根据OWASP TOP 10进行网站安全检查,这是一份强有力的Web应用安全意识文档。OWASP Top 10 代表了对于最关键的 Web 应用程序安全缺陷是什么的广泛共识。

SQL注入

当不受信任的数据作为命令或查询的一部分发送到解释器时,就会出现注入缺陷,例如 SQL、操作系统和 LDAP 注入。攻击者的恶意数据可能会诱使解释器执行非预期的命令或在未经适当授权的情况下访问数据。

解决方案- 为了保护您的网页免受 iSQL 的影响,您必须验证输入和过滤符号。

注射

失效的身份验证和会话管理

与身份验证和会话管理相关的应用程序功能通常没有正确实现,这使得攻击者能够泄露密码、密钥、会话令牌,甚至利用其他实现缺陷来冒充其他用户的身份。

解决方案- 为了保护您的网站免受此缺陷的影响,您必须使 cookie 和会话具有过期时间。

跨站脚本 (XSS)

只要应用程序获取不受信任的数据并将其发送到 Web 浏览器而不进行适当的验证或转义,就会出现 XSS 缺陷。XSS 允许攻击者在受害者的浏览器中执行脚本,然后劫持用户会话、破坏网站或将用户重定向到恶意网站。

解决方案- 对此的保护与 iSQL 的保护相同。

脚本编写

不安全的直接对象引用

当开发人员公开对内部实现对象(例如文件、目录或数据库密钥)的引用时,就会发生直接对象引用。如果没有访问控制检查或其他保护,攻击者可以操纵这些引用来访问未经授权的数据。

解决方案- 您应该实施特定的保护机制(例如密码)来保护此类文件。

安全配置错误

良好的安全性需要为应用程序、框架、应用程序服务器、Web 服务器、数据库服务器和平台定义和部署安全配置。应定义、实施和维护安全设置,因为默认设置通常是不安全的。

解决方案- 软件应保持最新。

敏感数据暴露

许多 Web 应用程序无法正确保护敏感数据,例如信用卡、税号和身份验证凭据。攻击者可能会窃取或修改此类保护较弱的数据,以实施信用卡欺诈、身份盗窃或其他犯罪活动。

解决方案- 敏感数据需要额外的保护,例如静态或传输中的加密,以及与浏览器交换时的特殊预防措施。

缺少功能级别访问控制

大多数 Web 应用程序在使该功能在 UI 中可见之前都会验证功能级别的访问权限。然而,应用程序在访问每个功能时都需要对服务器执行相同的访问控制检查。如果请求未经验证,攻击者将能够在未经适当授权的情况下伪造访问功能的请求。

解决方案- 您应该检查身份验证级别。

跨站请求伪造 (CSRF)

CSRF 攻击迫使已登录受害者的浏览器向易受攻击的 Web 应用程序发送伪造的 HTTP 请求,其中包括受害者的会话 cookie 和任何其他自动包含的身份验证信息。这允许攻击者强制受害者的浏览器生成易受攻击的应用程序认为是来自受害者的合法请求的请求。

解决方案- 最常用的预防是将一些不可预测的基于质询的令牌附加到来自网站的每个请求,并将它们与用户的会话相关联。

使用具有已知漏洞的组件

组件(例如库、框架和其他软件模块)几乎总是以完全权限运行。如果易受攻击的组件被利用,此类攻击可能会导致严重的数据丢失或服务器被接管。使用具有已知漏洞的组件的应用程序可能会破坏应用程序防御并引发一系列可能的攻击和影响。

解决方案- 检查该组件版本是否存在漏洞,并尝试避免或更改为其他版本。

无效的重定向和转发

Web 应用程序经常将用户重定向并转发到其他页面和网站。这些应用程序使用不受信任的数据来确定目标页面。如果没有适当的验证,攻击者可以将受害者重定向到网络钓鱼或恶意软件站点,或使用转发来访问未经授权的页面。

解决方案- 始终验证 URL。

安全使用的协议

在这种情况下,您有一个 VPS 计划,并且您自己管理一切。安装服务时,它们使用默认端口。这使得黑客的工作变得更容易,因为他知道在哪里查看。

下面给出了用于托管网站的一些主要服务端口 -

  • SSH – 端口 22
  • FTP – 端口 21
  • MySQL – 端口 3306
  • DNS – 端口 53
  • SMTP – 端口 25

这些服务的端口更改根据操作系统及其不同版本而有所不同。除此之外,您还必须安装防火墙。如果是Linux操作系统,我们会推荐IPtables并阻止所有其他不需要的端口。如果您的操作系统是 Windows,您可以使用其内置的防火墙。

要阻止服务中的暴力登录,您可以使用Fail2ban,这是一个基于 Linux 的软件,并阻止所有导致多次登录尝试失败的 IP 地址。