面试复盘2:网络基础

  1. 为什么有人会说post比get更安全
  2. 为什么会有跨域限制
  3. 什么是xss
  4. 当一个在上线的版本有一个地方需要修改的时候,不想整个资源重新加载有什么方式去解决

1.其实http请求中,get和post都是明文传输,并没有在这方面更安全可说。主要是get可以通过jsonp传数据,绕过了跨域而post不行,post的相对来说比较安全,所以在没有采取restful api风格时,在对数据的增删改会选择post去做,而不是get
2.跨域限制,主要是减少csrf(cross-site-request-forgery)跨站请求伪造。
同源策略主要限制以下三种:
(1) Cookie、LocalStorage 和 IndexDB 无法读取。
(2) DOM 无法获得。
(3) AJAX 请求不能发送
在没有跨域的时候,第三方网站可以通过获取用户已经登录被攻击网站的cookies,去伪造用户发送请求给被攻击的网站。
当第三方通过iframe嵌入被攻击网站,通过访问dom可以获取表单的value得到数据
但这也不完全防止到csrf,比如在留言板的图片中写了那段请求,那么referr就会是同一个网站,所以要防止,还是要对token做验证,生成一个第三方无法得到的token比如说在表单的隐藏value字段,又或者是在http自定义请求头上带上token
3.xss(cross-site-script)跨站脚本攻击,一种是攻击者把恶意脚本存到了被攻击的数据库中,当网站没有检验出是恶意脚本的时候,就会在用户的页面中执行,另一种是通过引诱受害者去发送恶意脚本到后端,后端把结果返回给受害者时,受害者就会中招,短链接会很容易中招因为隐藏了恶意脚本,还有一种是将用户输入的值直接放进html渲染,url中的#,localstorge和indexedDB这种不经过后端的,由客户端进行控制的渲染。
要防止xss除了对输入进行编码和校验,还可以对页面开启content-security-policy(csp),去阻止eval,行内资源
4.大体思路是,客户端将版本号发送到服务端,服务端将新的版本号和客户端发来的版本号的文件做diff,将修改的地方发送给客户端,客户端将diff的地方merge回去并修改版本号
大体可以参照:
https://www.zhihu.com/question/28467444
5.讲到网络安全,还有就是一个链接地址时rel=“nofollow noreferrer”,
nofollow 可以让告诉搜索引擎"不要追踪此网页上的链接或不要追踪此特定链接"
noreferrer 可以的得到refferrer从哪个网站跳过来的
noopener 不允许通过window.opener去得到打开这个新窗口的原网站window对象

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值