2017.5.25
今日早报
- 新版本React的的各种新特性,感觉React还是挺重要的,作为最热门的前段框架,react起源于facebook的内部项目,是因为该公司对市场上的javascript MVC模型不满意,所以自己写了一套框架,因为很新,所以入门教程不多,可以看看阮一峰的日志,写的还不错
- IBM发布最强的量子处理器,性能是旧款的两倍多。
- 虚拟金融成了人工智能发展新方向,让人工智能来给客户提供理财投资咨询。
Day1的编程训练题答案解析:
https://zhuanlan.zhihu.com/p/27100060
前端常见问题
问题1: XHTML和HTML有什么区别?
- HTML是一种基本的WEB网页设计语言
XHTML是一个基于XML的置标语言
最主要的不同
- XHTML元素必须被正确地嵌套
- XHTML元素必须被关闭
- XHTML文档必须拥有根元素
- 标签名必须用小写字母
HTML4和HTML5的区别
- html:没有体现结构语义化的标签,我们通常都是这样来命名的
<div id="header"></div>.
这样表示网站的头部。 - html5:在语义上却有很大的优势。提供了一些新的标签,比如:
<header><article><footer>
- html:没有体现结构语义化的标签,我们通常都是这样来命名的
问题2: Doctype? 严格模式与混杂模式-如何触发这两种模式,区分它们有何意义?
- DOCTYPE是document type(文档类型)的简写,用来说明你用的XHTML或者HTML是什么版本。
1作用:声明文档的解析类型(document.compatMode),避免浏览器的怪异模式。
- document.compatMode:
BackCompat:怪异模式,浏览器使用自己的怪异模式解析渲染页面。
CSS1Compat:标准模式,浏览器使用W3C的标准解析渲染页面。页面添加了<!DOCTYPE html>
- 这个属性会被浏览器识别并使用,但是如果你的页面没有DOCTYPE的声明,那么compatMode默认就是BackCompat
- document.compatMode:
2 使用:
- 2.1 使用也很简单,就是在你的html页面的第一行添加””一行代码就可以了
- 2.2 jsp的话,添加在<%@ page %>的下一行。
- 2.3 不用区分大小写
用于声明文档使用那种规范(html/Xhtml)一般为 严格 过度 基于框架的html文档
- 加入XMl声明可触发,解析方式更改为IE5.5 拥有IE5.5的bug
问题3: 写出几种IE6 BUG的解决方法
- 1.双边距BUG float引起的 使用display
- 2.3像素问题 使用float引起的 使用dislpay:inline -3px
- 3.超链接hover 点击后失效 使用正确的书写顺序 link visited hover active
- 4.Ie z-index问题 给父级添加position:relative
- 5.Png 透明 使用js代码 改
- 6.Min-height 最小高度 !Important 解决’
- 7.select 在ie6下遮盖 使用iframe嵌套
- 8.为什么没有办法定义1px左右的宽度容器(IE6默认的行高造成的,使用over:hidden,zoom:0.08 line-height:1px)
问题4: IE和DOM事件流的区别
- 1.执行顺序不一样
- 2.参数不一样
- 3.事件加不加on
- 4.this指向问题
个人思考题
###1、谈一谈你做过的一个项目,业务逻辑模块如何划分的?
2、什么是xss漏洞,怎么防御?
- XSS又称CSS(为了避免和css重复,就叫XSS了),全称Cross SiteScript,跨站脚本攻击,是Web程序中常见的漏洞,XSS属于被动式且用于客户端的攻击方式,所以容易被忽略其危害性。其原理是攻击者向有XSS漏洞的网站中输入(传入)恶意的HTML代码,当其它用户浏览该网站时,这段HTML代码会自动执行,从而达到攻击的目的。如,盗取用户Cookie、破坏页面结构、重定向到其它网站等。
- XSS攻击类似于SQL注入攻击,攻击之前,我们先找到一个存在XSS漏洞的网站,XSS漏洞分为两种:
- 一种是DOM Based XSS漏洞
- 另一种是Stored XSS漏洞。
理论上,所有可输入的地方没有对输入数据进行处理的话,都会存在XSS漏洞,漏洞的危害取决于攻击代码的威力,攻击代码也不局限于script。
XSS有哪些类型?
- 反射型:简单的描述就是把用户输入的数据反射给浏览器,这个数据可能是Html代码或者js代码,反射后让浏览器去执行。
- 存储型:把用户输入的数据(比如恶意的js代码)存储在服务器端,具有很强的稳定性,危害时间长。
- DOM Based XSS:这种不是按照存储在哪里来划分的,可以说是反射型,由于历史原因,归为一类,通过改变DOM结构形成的XSS称之为DOM Based。
XSS的危害有哪些?
- 1、劫持Cookie
- 2、构建Get和Post请求
- 3、XSS钓鱼
- 4、获取用户系统信息
- 此外XSS还可以识别用户的浏览器信息、用户安装的软件以及用户真实的IP等信息。
- 5、XSS Wrom
如何防御XSS呢?
- 1、给关键的Cookie设置HttpOnly属性
- 这样能够避免js读取Cookie信息(设置后有助于缓解XSS,但是XSS除了劫持Cookie之外,还可以模拟用户的身份进行操作)。
- 2、进行输入检查
- 如果仅仅在客户端通过JS来做输入校验,有可能会被攻击者绕过,WEB开发中的普遍做法是同时在客户端和服务端做校验。这种输入检查的方式也称之为XSS Filter。
- 3、输出检查
- 一般说来,除了富文本输出之外,在变量输出到HTML页面时,可以使用编码或者转义的方式来防御XSS攻击。
- 4、防御DOM BasedXSS
- 首先是$var输出到
<script>
时,应该执行一次javasriptEncode,其次在doument.write输出到HTML页面时,如果是输出到事件或者脚本,可以再做一次javaScriptEncode,如果是输出到HTML内容或者属性,则可以做一次HtmlEncode。
- 首先是$var输出到
- 1、给关键的Cookie设置HttpOnly属性