关于前端网络安全方面

前端常见的网络安全包括:xss(跨站脚本攻击)、csrf(跨站请求伪造)、sql注入攻击、DNS挟持、http挟持等
在地址栏输入严格url,到页面呈现,会发生什么?
1.输入url,浏览器先查看缓存,若缓存中有,直接显示页面,若没有,则进行域名解析,获取相应IP地址
2.浏览器想服务器发送TCP连接,建立三次握手
3.握手成功后,建立http请求
5.服务器收到请求后,将数据返回至服务器
6.浏览器收到响应。读内容,渲染页面

1.关于DNS挟持

页面输入url之后,获取原域名的DNS解析权,修改掉原先的ip地址,将DNS指向攻击者的ip地址。(即输入https://www.baidu.com/时,出来的是别的页面)…后果:用户被诱骗到冒牌网站进行登录等操作导致泄露隐私数据。
防范:
***使用备用域名
***手动指定DNS服务器地址

2.关于http挟持

即在http传输过程中,对响应体进行篡改(一般通用的方法都是插入静态脚本或者是HTML Content,或者是将整体替换成Iframe,然后再在顶层的Iframe上进行内容的植入)
防范:https

3.XSS(跨站脚本攻击)

攻击者往页面注入恶意script代码,用户在浏览页面的时候会执行这些代码,造成用户的cookie信息被盗取或会话被劫持等
类型
*1.反射型XSS:用户点击攻击连接,服务器解析后响应,在返回的内容中包含xss的恶意攻击脚本,被浏览器执行。
*2.持久型XSS:攻击者将恶意代码提交到目标网站的数据库中。用户打开目标网站时,网站服务端将恶意代码从数据库取出,返回到浏览器。用户浏览器接收到响应后解析执行,混在其中的恶意代码也被执。
*3.DOM型XSS:用户打开带有恶意的链接,浏览器在DOM解析的时候直接执行恶意代码(由前端js代码不严谨,随意执行不可信代码导致)
防范
1.对用户的输入内容进行过滤,对输出在网页上的内容进行转译或编码。
2.在 cookie 中设置 HttpOnly 属性,让js脚本将无法读取到 cookie 信息。

4.CSRF(跨站请求伪造)

攻击者盗取用户身份,以用户身份采取一系列恶意操作,即恶意网站利用网站的cookie信息,伪造想网站发起请求,如:转账;
例子:当用户在A网站用用户名和密码登录上去的同时,在同一浏览器进入网站B,B网站返回一些攻击性代码,并发出一个请求要求访问第三方站点A,浏览器接受到恶意代码后,将恶意代码和Cookie信息向A网站发起恶意请求。
防范
1.在HTTP头中自定义属性并验证:服务器想客户端发起严格Token值,每次请求都需要携带Token,服务器会验证Token值是否有效
2.验证HTTP Referer字段:通过Referer验证请求是否是第三方网站发起的
3.对Cookie设置SameSite属性,限制Cookie不随着跨域请求发送

5.SQL注入:

攻击者可以在web应用程序中事先定义好的查询语句的结尾上添加额外的SQL语句,以此来非法获取数据库信息以及对数据库进行操作
防范:
1.对用户的输入进行校验
2.对主要信息加密

你可能感兴趣的:(关于前端网络安全方面)