📜  网站开发-安全性

📅  最后修改于: 2020-10-17 06:50:50             🧑  作者: Mango


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

根据安全专家的建议,他们将建议根据OWASP TOP 10进行网站安全检查,这是一个功能强大的Web应用程序安全意识文档。 OWASP Top 10代表了关于最关键的Web应用程序安全漏洞是什么的广泛共识。

SQL注入

当将不受信任的数据作为命令或查询的一部分发送到解释器时,会发生诸如SQL,OS和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地址,这会使许多次尝试登录失败。