越来越多的人能够接触到互联网。这促使许多组织开发基于web的应用程序,用户可以在线使用这些应用程序与组织进行交互。为web应用程序编写的糟糕代码可能被利用来获得对敏感数据和web服务器的未经授权的访问。
在本文中,我将向你介绍web应用程序黑客技术,以及你可以采取的防止此类攻击的应对措施。
什么是web应用程序?什么是网络威胁?
web应用程序(又名网站)是基于客户机--服务器模型的应用程序。服务器提供数据库访问和业务逻辑。它托管在web服务器上。客户机应用程序在客户机web浏览器上运行。Web应用程序通常是用Java、c#和VB等语言编写的。web应用中使用的数据库引擎包括MySQL、MS SQL Server、PostgreSQL、SQLite等。
大多数web应用程序部署在可以通过Internet访问的公共服务器上。由于易于访问,这使得它们容易受到攻击。以下是常见的web应用程序的威胁。
- SQL注入——这种威胁的目标可能是绕过登录算法,破坏数据,等等。
- 拒绝服务攻击——这种威胁的目标可能是拒绝合法用户对资源的访问。
- 跨站点脚本XSS——这种威胁的目标可能是注入可以在客户端浏览器上执行的代码。
- Cookie/Session盗取——这种威胁的目标是攻击者修改Cookie/Session数据,以获得未经授权的访问。
- 表单篡改——这种威胁的目标是修改电子商务应用程序中的价格等表单数据,以便攻击者能够以较低的价格获得商品。
- 代码注入——这种威胁的目标是注入可以在服务器上执行的代码,如PHP、Python等。代码可以安装后门,透露敏感信息等。
- 破坏——这种威胁的目标是修改网站上显示的页面,并将所有页面请求重定向到包含攻击者消息的单个页面。
如何保护你的网站免受黑客攻击?
组织可以采用以下策略来保护自己不受web服务器攻击。
- SQL注入——在将用户参数提交到数据库进行处理之前对其进行清理和验证,可以帮助降低通过SQL注入受到攻击的几率。数据库引擎,如MS SQL Server, MySQL等,支持参数和预备语句。它们比传统的SQL语句安全得多
- 拒绝服务攻击——如果攻击是简单的DoS,则可以使用防火墙来拦截来自可疑IP地址的流量。适当的网络配置和入侵检测系统也有助于减少DoS攻击成功的机会。
- 跨站点脚本XSS——验证和清理headers、通过URL传递的参数、表单参数和隐藏值可以帮助减少XSS攻击。
- Cookie/Session中毒——这可以通过加密Cookie的内容、设置过期时间、将Cookie与用于创建它们的客户端IP地址关联来防止。
- 表单篡改——通过在处理之前验证和验证用户输入,可以防止这种情况。
- 代码注入——这可以通过将所有参数视为数据而不是可执行代码来防止。可以使用消毒和验证来实现这一点。
- 破坏——一个好的web应用程序开发安全策略应该确保它密封了访问web服务器的常用漏洞。这可以是操作系统、web服务器软件的适当配置,以及开发web应用程序时的最佳安全实践。