常见前端攻击方式

现在前端肯定也需要知道安全问题,作为网站开发者,要保证基础的三点:

  1. 保密性
    数据内容不能泄漏,加密是常用方法
  2. 完整性
    数据内容不能被篡改,特别是现在oAuth盛行的年代,协议要求sign签名,就是保证双方数据完整。一旦信息被改会发生什么不言而喻
  3. 可用性
    网站服务是可用的

常见前端攻击方式

DDos攻击,Dos攻击,SQL注入,XSS,CSRF等,D|Dos攻击是通过http协议本身特点,通过大量恶意请求导致服务器不能响应的攻击,防范这个问题需要运维或FireWall来做的,这里就不多说明,只简单说下FEer会接触到的几个。
在此之前,不得不说一个概念:安全沙箱。不知道的可以度娘一下

SQL注入

通过非法方式影响服务的正常有效运行,提供非正确的信息返回或不能正常服务。在前后端未进行分离的年代,sql注入是每个web开发者都需要熟知的。那时候访问的url就很容易猜到是哪个库表哪个操作,最著名的sql注入就是登录时user和password输入'1' or 2=2"' 如果没有对URI进行特殊符号转化,服务端sql脚本就可能出现

sql = "select * from user where user='1' or 2=2"' password='' " // 密码类似user的写法

sql查询条件是成立的,有可能会把整个库表的信息都返回,甚至也给暴力破解留下入口。
现在FEer可以不用考虑这一点,但是请求地址还是可以在network里看到,适当的加密和偏移还是需要的。当然,后端的安防是最最重要的,这里只说前端,node的代理或后端对于前端脚本的请求拦截找机会再做分享。

XSS(cross-site scripting)跨站脚本攻击

从本站发起,这是首要条件,因为安全沙箱的限制,非本站脚本不能操作cookie或dom,那么它如果攻击呢?
攻击方式:

  • 用户输入
    例如:在某个评论页,输入了非法代码,后端未转译,或前端直接innerHTML插入。那么网站的保密性就没有了,造成的结果:
// 可能是div可能是a,不设防就可以随意添加dom
测试链接
// 各种脚本随意跑