作为前端安全系列的最后一篇,本文主要以走马观花似的方式了解下WEB相关的其它比较常见的安全问题,其中也包括前端范围之外的攻击。
DDOS攻击
DDOS也叫分布式拒绝服务攻击。分布式拒绝服务攻击可以使很多的计算机在同一时间遭受到攻击,使攻击的目标无法正常使用。
攻击者进行一次DDoS攻击大概需要经过了解攻击目标、攻占傀儡机、实际攻击三个主要步骤。
DDOS就是通过同一时间发起大量正常请求(傀儡机)来使被攻击服务器疲于应付而出现宕机的情况。
SQL注入
服务端同学是经常和数据库打交道的,他们操作数据库一般使用 SQL语句。
例如,查找用户
SELECT * FROM user WHERE username = 'user' ADN password = 'pwd123'
SQL注入指的是SQL语句中混入了攻击者的攻击字符串,而服务端同学没有对其进行过滤防范,导致执行意外的SQL操作
如user混入了注释#,就会改变原来的SQL语句
SELECT * FROM user WHERE username = 'user'#'ADN password = '111'
SQL注入具有很大的威胁,因为其直接操作了生产环境的数据库,其属于服务端同学重点防范的攻击类型之一,相信很多后端框架都自带过滤功能
点击劫持(Iframe劫持)
点击劫持指的是,攻击者页面(A页面)使用 Iframe 加载 被攻击者页面(B页面)。这样攻击者可以在A页面展示出B页面的内容,并在B页面(iframe节点)上面覆盖透明遮挡层。此时用户因为自己访问的是B页面的网站,并在其页面进行点击操作,这时攻击者就可以劫持用户操作(比如调用有些需要用户操作才能触发的API或者跳转到攻击者指定的钓鱼网站)。
防范点击劫持的相关方法
- X-FRAME-OPTIONS 机制
通过HTTP首部字段控制页面是否可以被其它网页嵌入
X-Frame-Options: deny
X-Frame-Options: sameorigin
X-Frame-Options: allow-from https://example.com/
- 使用JS脚本代码判断
// 禁止被嵌入,否则自动跳转
if (top.location !== window.location) {
top.location = window.location;
}
参考
欢迎到前端自习群一起学习~516913974