您的Web应用程序是否足够安全?
添加时间:2019-05-14 16:46:00
来源:
现实世界依靠燃料和虚拟世界的安全。
在万维网中,安全总是意味着隐私是一种误称。当我们说Web应用程序是安全的时,它意味着存在基本可信级别的登录安全性,以及应用程序预期执行的有效执行/操作的数量,而不会漫游或铺设自己的行动方案。
Web应用程序安全性处理的威胁比用户名和密码盗窃要复杂得多。其中大部分涉及使用脚本语言在应用程序运行时执行后台任务,而无需用户了解后台进程的运行情况。其余部分涉及用户在表单中提供条目,处理输入的数据或用户单击从未识别的来源发送的恶意URL。可能性是无止境。
应用程序开发人员认识到Web应用程序中存在缺陷所带来的危险,并建立了一个名为OWASP(在线Web应用程序安全项目)的社区。OWASP是一家非营利组织,是Web应用程序安全的标准组织。OWASP社区包括世界各地的公司,教育组织和个人。
经过多年测试漏洞应用程序后,OWASP提出了十个安全漏洞,使Web应用程序容易受到攻击。
针对Web应用程序的十大威胁是: -
注入: 当用户通过输入框在表单中输入数据时,它将使用数据库(SQL,LDAP)进行存储和显示。它们经常出现在SQL,LDAP,Xpath或NoSQL查询中; OS命令; XML解析器,SMTP标头,程序参数等。 此类方法后面的Shell命令可能使攻击者可以访问操作系统和其他链接的外部程序来执行任何恶意任务。换句话说,SQL注入允许攻击者通过Web应用程序将恶意代码中继到其他系统。这可能会欺骗应用程序执行和执行过程,而这些过程未指示由有效用户/管理员运行。这可能导致数据丢失或损坏,缺乏问责制或拒绝访问。注射有时可能导致完全接受宿主。
身份验证和会话管理中断:身份验证和会话管理中断,允许攻击者获取密码,令牌和会话ID等详细信息,然后使用户可以登录该用户帐户并模拟他们执行交易。攻击者可能会使用URL中公开的活动会话ID来劫持帐户。为避免此类攻击,必须通过加密连接传递用户凭据,并使用散列和加密的概念进行存储。必须执行会话ID和身份验证超时,以阻止此类威胁。必须在忘记密码的情况下重新进行身份验证以验证用户的身份。
跨站点脚本(XSS):当用户在没有输入用户验证的情况下输入数据时,会发生这种情况。并且这些不受信任的数据被发送到应用程序而不进行适当的验证(浏览器端脚本)。下次当其他用户访问该站点或运行相同的应用程序时,他会看到该应用程序的行为方式与攻击者希望它的行为方式相同。恶意脚本可以访问cookie,会话令牌或浏览器保留的任何其他敏感信息,并与该站点一起使用。这些脚本还可以重写HTML页面的内容。
不安全的直接对象引用:当参考(对象,文件或数据库)暴露给未经验证访问(授权)的用户查看/修改/使用时,会发生这种情况。这些漏洞使攻击者能够破坏链接到修改参数的所有数据。一旦攻击者找到进入应用程序的方法,他很可能会想出一种深入挖掘并妥协任何可能数据的方法。示例:仅当管理员应具有查看/使用/修改数据的访问权限时,授予所有用户的访问权限。
安全性错误配置:应用程序,应用程序服务器,Web服务器,数据库服务器都应具有安全配置。开发人员和系统管理员需要协同工作以确保正确配置整个堆栈。如果系统因故障安全配置而受到损害,则数据可能会随着时间的推移而被窃取或缓慢修改。
敏感数据曝光:S ^ 例如信用卡详细ensitive数据可能不会以最佳的方式进行保护。攻击者可能会侵入此类数据库并使用这些数据执行事务。这包括该数据的数据和备份。攻击者无法直接破解加密,他们窃取密钥,导致中间人攻击或从服务器或浏览器窃取干净的文本数据。保护此类敏感数据的唯一方法是使用强加密算法。
缺少功能级别访问控制:必须在应用程序和服务器上都存在功能级别授权。大多数Web应用程序在使用户可以访问该功能之前验证功能级别访问权限。但是,如果未在服务器上执行访问控制检查,则黑客将能够在未经适当授权的情况下进入应用程序。需要在两端验证请求,以阻止在没有有效授权的情况下伪造访问功能的请求。示例:如果未实现功能级别访问控制,则匿名用户访问私有功能或常规用户可以使用特权功能。
跨站点请求伪造(CSRF):也称为单击攻击或会话骑行。此漏洞允许攻击者强制最终用户在其当前已经过身份验证的Web应用程序上执行不需要的操作,并将伪造的HTTP请求以及用户身份验证详细信息发送到易受攻击的网站。它实际上导致代表受害者的不良功能。示例:您通过邮件通过可疑或不明来源收到的大多数可疑链接。
使用具有已知漏洞的组件:用于开发应用程序的某些工具可能存在安全漏洞,这些漏洞已成为攻击者已知的事实和常识。实施这样的工具是不可取的,因为它可能反过来导致产生上述大多数缺陷。攻击者知道一个组件的弱点,因此他可能知道其他特定应用领域的哪些因为这个漏洞而易受攻击。实际上每个应用程序都有这些问题,因为大多数开发团队都不专注于确保他们的组件/库达到日期。在许多情况下,开发人员甚至不知道他们正在使用的所有组件,更别关注他们的版本。组件依赖性使事情变得更糟。
无效的重定向和转发:Web应用程序可能会将用户重定向或转发到其他网站。攻击者可能会将用户转发到未经授权的页面或将其重定向到恶意软件站点或欺骗用户泄露密码等敏感信息。由于恶意链接被修改为与原始站点看起来相同,因此网络钓鱼尝试可能具有更可信赖的外观。
虽然上述所有事实都在下面的链接中得到了很好的解释; 我的目的只是快速浏览一下我们作为互联网用户必须注意的所有安全威胁。