网站开发 - 安全
保护您的网页与开发网页同样重要,因为任何可能危及安全的威胁都可能损害您的商业声誉、给您造成经济损失(通过窃取您的在线存款)、损害访问您网站的客户等。
根据安全专家的说法,他们会建议根据 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 地址。