📜  您的 Web 应用程序是否足够安全?再想一想

📅  最后修改于: 2021-10-21 05:23:19             🧑  作者: Mango

现实世界靠燃料运行,虚拟世界靠安全运行。

在万维网中,安全总是意味着隐私是一种误称。当我们说一个 Web 应用程序是安全的时,它意味着有一个基本的可信登录安全级别,以及一个应用程序应该执行的有效执行/操作的数量,而不会徘徊或铺平自己的行动路线。

Web 应用程序安全处理比用户名和密码盗窃更复杂的威胁。其中大部分涉及在应用程序运行时使用脚本语言执行后台任务,而用户不知道后台进程正在运行。其余的处理用户在表单中输入条目、处理输入的数据或用户点击来自不明来源的恶意 URL。可能性是无止境。

应用程序开发人员认识到 Web 应用程序缺陷所带来的危险,并建立了一个名为 OWASP(在线 Web 应用程序安全项目)的社区。 OWASP – 一个非营利组织 – 是 Web 应用程序安全的标准机构。 OWASP 社区包括世界各地的公司、教育组织和个人。

经过多年的漏洞测试应用程序,OWASP 提出了十个使 Web 应用程序易受攻击的安全漏洞。

针对 Web 应用程序的十大威胁是:-

        1. 注入:当用户通过输入框在表单中输入数据时,它会使用数据库(SQL、LDAP)存储和显示。它们经常出现在 SQL、LDAP、Xpath 或 NoSQL 查询中;操作系统命令; XML 解析器、SMTP 标头、程序参数等。注入这些方法背后的 Shell 命令可能使攻击者可以访问操作系统和其他链接的外部程序以执行任何恶意任务。换句话说,SQL 注入允许攻击者通过 Web 应用程序将恶意代码中继到其他系统。这可能会欺骗应用程序执行和执行未指示由有效用户/管理员运行的进程。这可能导致数据丢失或损坏、缺乏问责制或拒绝访问。注入有时可能会导致主机完全接管。
        1. 损坏的身份验证和会话管理:损坏的身份验证和会话管理允许攻击者获取密码、令牌和会话 ID 等详细信息,然后使他们能够登录到该用户帐户并冒充他们进行交易。帐户可能会被攻击者使用 URL 中公开的活动会话 ID 劫持。为避免此类攻击,用户凭据必须通过加密连接传递并使用散列和加密的概念进行存储。必须执行会话 ID 和身份验证的超时以阻止此类威胁。在忘记密码的情况下必须重新认证以验证用户的身份。
  1. 跨站点脚本 (XSS) :当用户在没有输入用户验证的情况下输入数据时会发生这种情况。并且这个不受信任的数据在没有进行适当的验证(浏览器端脚本)的情况下被发送到应用程序。下次当其他用户访问该站点或运行相同的应用程序时,他会目睹该应用程序以攻击者希望它的方式运行。恶意脚本可以访问 cookie、会话令牌或浏览器保留并与该站点一起使用的任何其他敏感信息。这些脚本还可以重写 HTML 页面的内容。
  1. 不安全的直接对象引用:当引用(对象、文件或数据库)被公开以供未验证访问(授权)的用户查看/修改/使用时,就会发生这种情况这些缺陷使攻击者能够破坏与修改参数相关的所有数据。一旦攻击者找到进入应用程序的方法,他很可能会想办法深入挖掘并破坏任何可能的数据。示例:当只有管理员有权查看/使用/修改数据时,授予所有用户访问权限。
  1. 安全配置错误应用程序、应用程序服务器、Web 服务器、数据库服务器都应该有安全配置。开发人员系统管理员需要共同努力,以确保整个堆栈配置正确。如果系统因错误的安全配置而受到损害,随着时间的推移,数据可能会被窃取或缓慢修改。
  1. 敏感数据曝光就像信用卡详细信息ensitive数据可能不会在尽可能最好的方式保护。攻击者可能会闯入此类数据库并使用这些数据进行交易。这包括数据和该数据的备份。攻击者无法直接破解加密,他们会窃取密钥、引发中间人攻击或从服务器或浏览器窃取干净的文本数据。保护此类敏感数据的唯一方法是使用强大的加密算法。
  1. 缺少函数级访问控制:应用程序和服务器上都必须存在函数级授权。大多数 Web 应用程序在使用户可以访问该功能之前验证函数级别的访问权限。但是,如果不在服务器上执行访问控制检查,黑客将能够在未经适当授权的情况下渗透到应用程序中。请求需要在两端进行验证,以防止伪造未经有效授权访问功能的请求示例:如果未实施函数级别访问控制,匿名用户可以访问私有功能或普通用户可以使用特权函数。
  1. 跨站点请求伪造 (CSRF) :也称为一键攻击或会话骑行。此漏洞允许攻击者强制最终用户在他们当前已通过身份验证的 Web 应用程序上执行不需要的操作,并将伪造的 HTTP 请求以及用户身份验证详细信息发送到易受攻击的网站。它实际上会代表受害者产生不希望的函数。示例:您通过邮件通过可疑或身份不明的来源收到的大多数可疑链接。
  1. 使用具有已知漏洞的组件:一些用于开发应用程序的工具可能存在安全漏洞,这对于攻击者来说已经是众所周知的事实和常识。实施这样的工具是不可取的,因为它可能反过来导致产生上述大多数缺陷。攻击者知道一个组件的弱点,因此他可能知道应用程序的哪些其他特定领域由于此缺陷而易受攻击。几乎每个应用程序都有这些问题,因为大多数开发团队并不专注于确保他们的组件/库达到日期。在许多情况下,开发人员甚至不知道他们使用的所有组件,更不用说它们的版本了。组件依赖使事情变得更糟。
  1. 无效的重定向和转发:Web 应用程序可能会将用户重定向或转发到其他网站。攻击者可能会将用户转发到未经授权的页面或将其重定向到恶意软件站点或诱骗用户披露密码等敏感信息。由于恶意链接被修改为看起来与原始站点相同,因此网络钓鱼尝试可能具有更可信的外观。

尽管以上所有事实都在以下链接中得到了很好的解释;我的目的只是快速浏览一下我们作为互联网用户必须注意的所有安全威胁。

参考

  • https://www.owasp.org/index. PHP/Top_10_2013-Top_10
  • http://www.upenn.edu/computing/security/swat/SWAT_Top_Ten。 PHP
  • http://codedx.com/insecure-direct-object-references/

Varsha 是一位贪婪的读者和音乐狂人,是来自瓦尔沙 ACED,班加罗尔。除了是一名技术爱好者,她还是一名活跃的博主,撰写的主题包括社会问题、生活经历、挥之不去的想法和小说。你可以通过 Twitter @varsh2v3 联系到她

如果您还想在这里展示您的博客,请参阅 GBlog,了解 GeeksforGeeks 上的客座博客写作。