web 常见的安全问题

web 常见的安全问题

本文主要是收集并科普一下 web 常见的安全问题,针对安全漏洞产生的场景和防御方式不详细的描述(仅作参考),后续将通过相关系列的文章进行补充和完善。想了解详细的内容,请点击对应的链接进入维基百科查看。

持续更新中…

前端安全

XSS 跨站脚本攻击

跨站脚本(英语:Cross-site scripting,通常简称为:XSS)是一种网站应用程序的安全漏洞攻击,是代码注入的一种。它允许恶意用户将代码注入到网页上,其他用户在观看网页时就会受到影响。这类攻击通常包含了 HTML 以及用户端脚本语言。

XSS 攻击通常指的是通过利用网页开发时留下的漏洞,通过巧妙的方法注入恶意指令代码到网页,使用户加载并执行攻击者恶意制造的网页程序。这些恶意网页程序通常是 JavaScript,但实际上也可以包括 Java,VBScript,ActiveX,Flash 或者甚至是普通的 HTML。攻击成功后,攻击者可能得到更高的权限(如执行一些操作)、私密网页内容、会话和 cookie 等各种内容。

防御措施:过滤特殊字符、使用 HTTP 头指定类型

CSRF 跨站请求伪造

跨站请求伪造(英语:Cross-site request forgery),也被称为 one-click attack 或者 session riding,通常缩写为 CSRF 或者 XSRF, 是一种挟制用户在当前已登录的 Web 应用程序上执行非本意的操作的攻击方法。跟跨网站脚本(XSS)相比,XSS 利用的是用户对指定网站的信任,CSRF 利用的是网站对用户网页浏览器的信任。

防御措施:检查 Referer 字段、添加校验 token

后端安全

SQL 注入攻击

SQL 攻击(英语:SQL injection),简称注入攻击,是发生于应用程序之数据库层的安全漏洞。简而言之,是在输入的字符串之中注入 SQL 指令,在设计不良的程序当中忽略了检查,那么这些注入进去的指令就会被数据库服务器误认为是正常的 SQL 指令而运行,因此遭到破坏或是入侵。

SESSION 与 COOKIE

Session 和 Cookie 是两种用于存储用户当前状态的工具。某些开发者不了解 Session 与 Cookie 的区别,误用或者混用,导致敏感信息泄露或者信息篡改。

Cookie 存储在浏览器上,用户可以查看和修改 Cookie。
Session 是存储在服务端的数据,一般来说安全可靠;大多数 Session 都是基于 Cookie 实现的(在 Cookie 中存储一串 SESSION_ID,在服务器上存储该 SESSION_ID 对应的内容)。

IP 地址欺骗

在计算机网络里面,IP 地址欺骗或 IP 欺骗是一个带有假的源 IP 地址的 IP 协议分组(数据报)的产物,目的是隐藏发送方或冒充另一个计算系统身份。使发送方可以保持匿名的一种技术是使用代理服务器。

防御措施:数据报过滤、…

验证码破解

非一次性、易识别性的验证码相对来讲很容易进行破解。

非一次性指的是同一个验证码可以一直被使用下去。一般来说,每进行一次验证码校对(无论正确与否),都应该强制更换或清除 Session 中的验证码。

易识别性指的是不加噪点不加扭曲的验证码,主当技术基本上 100%可识别的。

服务器安全

DoS/DDoS 攻击

拒绝服务攻击(英语:denial-of-service attack,缩写:DoS attack、DoS)亦称洪水攻击,是一种网络攻击手法,其目的在于使目标电脑的网络或系统资源耗尽,使服务暂时中断或停止,导致其正常用户无法访问。
当黑客使用网络上两个或以上被攻陷的电脑作为“僵尸”向特定的目标发动“拒绝服务”式攻击时,其称为分布式拒绝服务攻击(distributed denial-of-service attack,缩写:DDoS attack、DDoS)。

防御措施:防火墙、交换机、路由器、黑洞引导、流量清洗