目前常见的安全问题及常见名词:
-
跨站点脚本攻击(Cross-Site Scripting, XSS):
- 攻击方式:恶意用户将恶意脚本注入到网页中,当其他用户浏览该页面时,脚本将在其浏览器中执行。
- 防护方案:输入验证和过滤、输出编码、使用HTTP头中的Content Security Policy(CSP)限制脚本执行。
-
跨站点请求伪造(Cross-Site Request Forgery, CSRF):
- 攻击方式:攻击者通过诱骗用户点击恶意链接或访问恶意网站,在用户登录状态下发送伪造请求至目标网站,从而执行非法操作。
- 防护方案:使用随机令牌(CSRF Token)验证请求的合法性、检查Referer头、使用验证码等。
-
会话劫持和固定攻击(Session Hijacking/Fixation):
- 攻击方式:攻击者获取用户的会话ID,进而冒充用户进行操作,或者通过固定会话ID使用户在一个会话中停留。
- 防护方案:使用HTTPS协议加密会话、使用HttpOnly和Secure Cookie标志、定期更换会话ID。
-
SQL注入攻击(SQL Injection):
- 攻击方式:攻击者在输入中注入恶意的SQL语句,从而绕过输入验证和篡改数据库查询。
- 防护方案:使用参数化查询或预编译语句、限制数据库账户权限、进行输入验证和过滤。
-
敏感数据泄露:
- 攻击方式:敏感数据(如用户密码、付款信息)在传输或存储过程中被截获或泄露。
- 防护方案:使用HTTPS协议加密数据传输、对敏感数据进行适当的加密、合理的访问控制和安全的存储。
-
拒绝服务攻击(Denial of Service, DoS):
- 攻击方式:攻击者通过发送大量请求或消耗资源的行为使系统无法正常提供服务。
- 防护方案:流量监测和过滤、设置资源限制、使用负载均衡器等。
-
注入攻击(Injection):
- 攻击方式:攻击者通过提交恶意数据来篡改或执行未预期的命令,如OS命令注入、LDAP注入等。
- 防护方案:输入验证和过滤、使用安全的API来执行系统命令、使用ORM工具进行参数绑定。
-
URL跳转攻击:
- 攻击方式:攻击者将用户重定向到恶意网站,用于钓鱼、欺诈或其他攻击行为。
- 防护方案:验证和过滤重定向URL、使用白名单限制可接受的重定向目标。
-
还有一类是代码不严谨造成的业务安全问题:
- 攻击方式:攻击者将某些接口需要全局检测的信息返回,然后拿着这个返回值去发起一些另外的接口,然后就可以成功了,就是业务上写法不统一,有些人有遗漏,导致出错了,以为做到了全局检测,但实际没有。
- 防护方案:设计全局方案时要更慎重,并且也要更利用它人引用,步骤太多容易遗漏。
这些只是一些常见的安全问题类别和相应的防护方案,开发者在开发应用程序时应该综合考虑不同层面(包括前端、后端、数据交互等)的安全性,使用安全的编码实践并采取适当的安全措施来保护应用程序。