新时代的前端还需要懂得网络安全

前言

随着学习的深入,已经不仅仅只满足于编写前端的代码,把一个事情的问题看到更多更深远的地方去,慢慢了解网络访问的安全问题,势在必行。

开始

学习资料内容,基本从书本上获取,结合自己的理解,阐述出来,总结,在开始学习安全问题之前,我们必须先要了解,为什么会会有安全问题产生

从输入url到页面显示经历了怎么一个过程

  1. 页面输入url
  2. 浏览器会通过url寻找到dns服务器
  3. 根据dns服务器找到ip地址
  4. 根据ip地址访问到我们服务器中(现在一般是nginx)
  5. nginx设置安全访问以及过滤请求到我们服务器中的文件
  6. 后台代码响应url的请求(页面就返回文件,请求返回相应的内容)
  7. 页面渲染

简单的来讲就是,url->dns->nginx->java(php)->browser,其中dns获取到ip地址之后,浏览器会发送一个http请求,至于http请求,可以看我的上一篇文章

从头开始理解http吧

DNS挟持

页面输入url之后,通过特殊的方法(这里不详细描述)将原域名的DNS解析权弄到手,修改掉原先的ip地址,将DNS指向攻击者的ip地址

预防

  1. 启用备用域名,当其中一个域名被劫持之后,使用备用域名
  2. 手动修改DNS,将其改为114.114.114.114,备用DNS服务器改为8.8.8.8
  3. 修改浏览器的登录密码
  4. 将DNS转为http DNS解析

http挟持

一般是响应html的请求时候,运营商进行挟持,嵌入广告然后用iframe返回原网站内容,即在http传输过程中,篡改响应体

预防

  1. 使用https协议,保证我们的服务器能够确保接收到请求

sql注入

union注入攻击
能够形成union注入攻击的条件
  1. where 条件后面可带字符串,如:id=1与id=1`返回不同的结果
  2. 接口请求能够返回数据库数据
union注入攻击的方式
  1. 通过orderby来获取字段数
  2. 在搜索条件之后写上union(select 1,2,3【字段长度】)获取可输入的位置
  3. 在可输入sql语句的位置输入database(),获取数据库名称
  4. 然后通过数据库名称,来获取表名称
  5. 最后通过表名称,获取字段名称,并添加数据或者修改数据
防范方式
  1. 严格监控传入的数据,避免输入内容存在特殊值
  2. 前端没办法控制这个方案,只能在页面上控制,如果单独拎出来接口进行调试,那只能靠后端对数据进行验证
Boolean注入攻击

构造sql判断语句,通过返回结果判断哪些条件是成立的,以及获取数据库中的数据

形成Boolean注入攻击的条件
  1. 返回的结果一直为yes or no , 不返回数据库数据
Boolean注入的攻击方式
  1. 输入 leagth(database())>=nums
  2. 不断的判断长度之后,然后确认长度,在逐字进行判断使用substr方法
  3. 通过类似的方法,判断出数据库中的表名跟字段名
防范方式

同样的,需要处理输入内容,发现异常字符串,直接返回错误或者禁止访问

注入方式还有其他方法,类似于报错注入,时间注入,堆叠注入等等注入方式,有兴趣可以去百度查一查,虽然都是大同小异。 现阶段的各种后端框架一般都对sql注入进行了校验,除非自己手写sql然后拼接内容,否则正常情况下是不会存在sql注入的风险,当然很强的黑客技术除外,我只是个小萌新的见解

XSS

一种针对网站应用程序的安全漏洞攻击技术,是代码注入的一种。它允许恶意用户将代码注入页面,其他用户在浏览网页时会受到影响。

XSS攻击分为3中,反射型XSS、存储型XSS、dom型XSS

反射型XSS

攻击者会通过各种方式发送包含XSS代码的链接,然后用户打开链接并输入其内容之后,服务端会返回包含XSS代码的恶意脚本,并触发。

存储型XSS

将XSS内容存入数据库中,只要有人访问这个网页就会触发XSS代码,多用于论坛,留言板等需要长段内容输入的地方

dom型XSS

实际上也属于反射型XSS,使用dom对象去处理XSS代码,攻击者将专门设计过的url发送给用户,用户打开链接,浏览器就相应其中的XSS代码,多出现在数据初始化阶段

预防
  1. 过滤输入的数据,包括各种危险符号
  2. 对输出的页面的数据进行相应的编码转换

CSRF

攻击者编写非法链接,放入网站A,目标用户在访问网站A的时候,已经登录自动带上cookie,这个时候去访问攻击者写的非法链接,就能够直接使用目标用户的cookie来做一些事情

攻击前提

  • 目标用户已经登录了网站,能够执行网站的功能
  • 目标用户访问攻击者构造的url

预防

  1. 验证请求的referer值
  2. 登录后随机产生一个token,请求的时候带上token

后记

还有很多其他的攻击方式,大多数都是属于后端服务保护范畴,对于前端的保护,鉴于理解这么些攻击方式,我觉得差不多了。毕竟对于前端来说,这些攻击很多都是能够直接绕过前端代码进行的

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值