1. csrf和xss的网络攻击及防范?

答:

CSRF:跨站请求伪造,可以理解为攻击者盗用了用户的身份,以用户的名义发送了恶意请求,比如用户登录了一个网站后,立刻在另一个tab页面访问量攻击者用来制造攻击的网站,这个网站要求访问刚刚登陆的网站,并发送了一个恶意请求,这时候CSRF就产生了,比如这个制造攻击的网站使用一张图片,但是这种图片的链接却是可以修改数据库的,这时候攻击者就可以以用户的名义操作这个数据库,防御方式的话:使用验证码,检查https头部的refer,使用token

XSS:跨站脚本攻击,是说攻击者通过注入恶意的脚本,在用户浏览网页的时候进行攻击,比如获取cookie,或者其他用户身份信息,可以分为存储型和反射型,存储型是攻击者输入一些数据并且存储到了数据库中,其他浏览者看到的时候进行攻击,反射型的话不存储在数据库中,往往表现为将攻击代码放在url地址的请求参数中,防御的话为cookie设置httpOnly属性,对用户的输入进行检查,进行特殊字符过滤。

2.怎么看网站的性能如何?

答:

检测页面加载时间一般有两种方式,一种是被动去测:就是在被检测的页面置入脚本或探针,当用户访问网页时,探针自动采集数据并传回数据库进行分析,另一种主动监测的方式,即主动的搭建分布式受控环境,模拟用户发起页面访问请求,主动采集性能数据并分析,在检测的精准度上,专业的第三方工具效果更佳,比如说性能极客。

3.介绍HTTP协议(特征)?

答:

HTTP是一个基于TCP/IP通信协议来传递数据(HTML 文件, 图片文件, 查询结果等)HTTP是一个属于应用层的面向对象的协议,由于其简捷、快速的方式,适用于分布式超媒体信息系统。它于1990年提出,经过几年的使用与发展,得到不断地完善和扩展。目前在WWW中使用的是HTTP/1.0的第六版,HTTP/1.1的规范化工作正在进行之中,而且HTTP-NG(Next Generation of HTTP)的建议已经提出。HTTP协议工作于客户端-服务端架构为上。浏览器作为HTTP客户端通过URL向HTTP服务端即WEB服务器发送所有请求。Web服务器根据接收到的请求后,向客户端发送响应信息。


4.输入URL到页面加载显示完成发生了什么?

答:

DNS解析

TCP连接

发送HTTP请求

服务器处理请求并返回HTTP报文

浏览器解析渲染页面

连接结束

5.说一下对Cookie和Session的认知,Cookie有哪些限制?

答:

1.cookie数据存放在客户的浏览器上,session数据放在服务器上。

2.cookie不是很安全,别人可以分析存放在本地的COOKIE并进行COOKIE欺骗
考虑到安全应当使用session。

3.session会在一定时间内保存在服务器上。当访问增多,会比较占用你服务器的性能
考虑到减轻服务器性能方面,应当使用COOKIE。

4.单个cookie保存的数据不能超过4K,很多浏览器都限制一个站点最多保存20个cookie。

6.描述一下XSS和CRSF攻击?防御方法?

答:

XSS, 即为(Cross Site Scripting), 中文名为跨站脚本, 是发生在目标用户的浏览器层面上的,当渲染DOM树的过程成发生了不在预期内执行的JS代码时,就发生了XSS攻击。大多数XSS攻击的主要方式是嵌入一段远程或者第三方域上的JS代码。实际上是在目标网站的作用域下执行了这段js代码。

CSRF(Cross Site Request Forgery,跨站请求伪造),字面理解意思就是在别的站点伪造了一个请求。专业术语来说就是在受害者访问一个网站时,其 Cookie 还没有过期的情况下,攻击者伪造一个链接地址发送受害者并欺骗让其点击,从而形成 CSRF 攻击。

XSS防御的总体思路是:对输入(和URL参数)进行过滤,对输出进行编码。也就是对提交的所有内容进行过滤,对url中的参数进行过滤,过滤掉会导致脚本执行的相关内容;然后对动态输出到页面的内容进行html编码,使脚本无法在浏览器中执行。虽然对输入过滤可以被绕过,但是也还是会拦截很大一部分的XSS攻击。

防御CSRF 攻击主要有三种策略:验证 HTTP Referer 字段;在请求地址中添加 token 并验证;在 HTTP 头中自定义属性并验证。

7.具体有哪些请求头是跟缓存相关的?

答:

缓存分为两种:强缓存和协商缓存,根据响应的header内容来决定。

强缓存相关字段有expires,cache-control。如果cache-control与expires同时存在的话,cache-control的优先级高于expires。

协商缓存相关字段有Last-Modified/If-Modified-Since,Etag/If-None-Match

8.cookie有哪些字段可以设置?

答:

name字段为一个cookie的名称。

value字段为一个cookie的值。

domain字段为可以访问此cookie的域名。

非顶级域名,如二级域名或者三级域名,设置的cookie的domain只能为顶级域名或者二级域名或者三级域名本身,不能设置其他二级域名的cookie,否则cookie无法生成。

顶级域名只能设置domain为顶级域名,不能设置为二级域名或者三级域名,否则cookie无法生成。

二级域名能读取设置了domain为顶级域名或者自身的cookie,不能读取其他二级域名domain的cookie。所以要想cookie在多个二级域名中共享,需要设置domain为顶级域名,这样就可以在所有二级域名里面或者到这个cookie的值了。
顶级域名只能获取到domain设置为顶级域名的cookie,其他domain设置为二级域名的无法获取。

path字段为可以访问此cookie的页面路径。比如domain是abc.com,path是/test,那么只有/test路径下的页面可以读取此cookie。

expires/Max-Age 字段为此cookie超时时间。若设置其值为一个时间,那么当到达此时间后,此cookie失效。不设置的话默认值是Session,意思是cookie会和session一起失效。当浏览器关闭(不是浏览器标签页,而是整个浏览器) 后,此cookie失效。

Size字段 此cookie大小。

http字段  cookie的httponly属性。若此属性为true,则只有在http请求头中会带有此cookie的信息,而不能通过document.cookie来访问此cookie。

secure 字段 设置是否只能通过https来传递此条cookie

9.除了cookie,还有什么存储方式。说说cookie和localStorage的区别?

答:

还有localStorage,sessionStorage,indexdDB等

cookie和localStorage的区别:

cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递

cookie数据还有路径(path)的概念,可以限制。cookie只属于某个路径下

存储大小限制也不同,cookie数据不能超过4K,同时因为每次http请求都会携带cookie,所以cookie只适合保存很小的数据,如回话标识。

localStorage虽然也有存储大小的限制,但是比cookie大得多,可以达到5M或更大

localStorage始终有效,窗口或浏览器关闭也一直保存,因此用作持久数据;cookie只在设置的cookie过期时间之前一直有效,即使窗口和浏览器关闭。

10.HTML5和CSS3用的多吗?你了解它们的新属性吗?有在项目中用过吗?

答:

html5:

1)标签增删

8个语义元素 header p footer aside nav main article figure

内容元素mark高亮 progress进度

新的表单控件calander date time email url search

新的input类型 color date datetime datetime-local email

移除过时标签big font frame frameset

2)canvas绘图,支持内联SVG。支持MathML

3)多媒体audio video source embed track

4)本地离线存储,把需要离线存储在本地的文件列在一个manifest配置文件

5)web存储。localStorage、SessionStorage

css3:

CSS3边框如border-radius,box-shadow等;CSS3背景如background-size,background-origin等;CSS3 2D,3D转换如transform等;CSS3动画如animation等。

注意:本文答案仅作为参考

关注公众号,后台回复“java高级进阶”,免费获取Java高级进阶全套资料(分布式+微服务+技术文档+简历模板)

前端面试题之http/HTML/浏览器(二)相关推荐

  1. 前端面试题汇总及答案十二

    132.函数式编程的定义 1)它是一种范式,创建仅依赖输入就可以完成自身逻辑的函数. 2)保证当参数一样,函数被多次调用时,返回相同的值(引用透明性) 3)函数不会改变任何外部环境的变量,这将产生可缓 ...

  2. 前端面试题之http/HTML/浏览器(一)

    1.cookie sessionStorage localStorage区别? 答: cookie数据始终在同源的http请求中携带(即使不需要),即cookie在浏览器和服务器间来回传递 cooki ...

  3. 前端攻城狮学习笔记七:常见前端面试题之HTML/CSS部分(二)

    前端页面有哪三层构成,分别是什么?作用是什么? 1.结构层:由 HTML 或 XHTML 之类的标记语言负责创建,仅负责语义的表达.解决了页面"内容是什么"的问题. 2.表示层:由 ...

  4. 前端面试题之浏览器原理篇

    前端面试题之浏览器原理篇 一.浏览器安全 1. 什么是 XSS 攻击? (1)概念 (2)攻击类型 2. 如何防御 XSS 攻击? 3. 什么是 CSRF 攻击? (1)概念 (2)攻击类型 4. 如 ...

  5. web前端面试题完美整理/涵盖html,CSS、JS、浏览器、Vue、React、移动web。

    本篇文章整理总结了一些前端面试题,涵盖面很广,并且面的都是知名大厂,所以这些题还是很有代表性的,都掌握以后一面基础面应该没什么问题,二面也能应付大半,奉上: css相关 更多教程:https://su ...

  6. 2021最新最全前端面试题(包含HTML、CSS、JavaScript、Vue、React、浏览器、算法与数据结构等)

    整理了一些前端面试题,希望对正在找前端工作的伙伴有用.本篇文章内容篇幅较大,主要针对初中级前端开发工程师. 篇幅过长,大家可以先点赞收藏以后慢慢看. 关于HTML 的title和alt属性有什么区别 ...

  7. js 定时网页点击_前端面试题整合(JS进阶篇)(二)

    Ajax 是什么? 如何创建一个Ajax? AJAX全称是Asychronous JavaScript And Xml(异步的 JavaScript 和 XML) 它的作用是用来实现客户端与服务器端的 ...

  8. 2021前端面试题系列:fetch与axios、浏览器内多个标签页面通信及安全问题

    大家好,我是前端岚枫,今天主要跟大家分享我整理的笔记2021前端面试题系列:fetch与axios.浏览器内标签页之间的通讯方法.XSS 和CSRF以及如何防范,此方面内容在我们的工作中常用到, 也是 ...

  9. 前端面试题总结(二)

    前端面试题总结 1.说说对React的理解?有哪些特性? 1.React是用于构建用户界面的JavaScript库,只提供了UI层面的解决方案,遵循组件设计模式.声明式编程范式和函数式编程概念,使得前 ...

最新文章

  1. 【Java】类与对象 - 参数传值
  2. java mdt_MDT 2013 从入门到精通之软件、系统补丁导入
  3. android eclipse关联源码,以及源码(代码)以及jar查看软件
  4. 将ArXiv中的Reference导入EndNote
  5. Kafka消息处理与集群维护
  6. 关于Retinex图像增强算法的一些新学习。
  7. 微信app公众平台开发
  8. 最快60秒完成新冠病毒核酸对比 阿里云向社会免费开放基因计算服务
  9. Android APK反编译详解 .
  10. 浅析Linux设备树dts相关知识
  11. easypoi 语法_知识点总结及语法学习资料及视频
  12. 转载(Asp.net Core 中试使用ZKWeb.System.Drawing)
  13. 003-信息技术学科知识与教学能力
  14. 微信小程序开发之表单验证(WxValidate使用)
  15. 如何选择第三方电子发票平台服务商?
  16. 电脑上录屏的软件有哪些,屏幕录制软件哪个好用
  17. Electron-vue开发实战7——命令行调用与系统级别右键菜单项的实现
  18. 手机APP开发之MIT Appinventor详细实战教程(十三),云服务器的数据遇到的问题和解决的方法,以及网页客户端的详细使用方法,WIFI通信,数据获取在one net平台的相关应用
  19. 【网络hcip】ospf学习 总结
  20. 二进制文件和文本文件到底有什么不同?(二)

热门文章

  1. android动态添加的页面怎么加功能_Android跳转应用安装页面
  2. java 分布式事务_Java核心知识 Spring原理十五 JPA 原理
  3. nginx 电子书_Nginx最详细的反向代理配置步骤,拿去不谢
  4. (3.1)HarmonyOS鸿蒙单击事件4种写法
  5. 几个有用的word小技巧,保准提升效率~
  6. 关于Java中serialUID的序列化的问题
  7. 计算机网络第三章知识网络,计算机基础教案第三章计算机网络基础知识教案
  8. 用友U9执行JS代码。
  9. POJ--3974 Palindrome(回文串,hash)
  10. Java集合类框架的基本接口有哪些?