step1 :浏览器向服务器发送请求,这时候是没有cookie的
step2 :服务器返回set-Cookie头,向客户端浏览器写入Cookie
step3 :在该Cookie到期之前,浏览器访问该域下的所有页面都应该发送Cookie
- 处理富文本:在标签选择上尽量选择白名单,避免使用黑名单
第四章 跨站请求伪造
攻击者在自己的域内伪造一个页面,比如删除某个博客的文章。然后诱使用户访问一个页面,就以该用户身份在第三方站点执行一次操作。
####CSRF防御
-
验证码:CSRF攻击通常是用户在不知情的情况之下构造了网络请求,而验证码是用户必须与应用进行交互才能完成最终请求。
-
Referer Check :用于检查请求是否来自于合法的"源"。比如用户需要发帖就会登陆到后台,那么Referer这个值必然是发帖表单所在的页面。但是有一个缺陷,服务器并非什么时候都会去得到Referer。
-
Token:Token 需要同时放在表单中和session中,提交表但时,服务器要验证表单中的Token是否与用户session或者(cookie)中的Token是否一致。
-
token一定要足够随机
第五章 点击劫持
5.1 点击劫持
点击劫持其实就是利用视觉上的欺骗手段。攻击者使用一个不透明、不可见的iframe覆盖在网页上,
5.2 拖拽劫持和数据窃取
诱使用户从不可见的iframe中拖拽出攻击者希望得到的数据。
5.3 触屏劫持
-
touchstart
-
touchend
-
touchmove
-
touchcancel
5.4 防御ClickJacking
- frame busting
写一段JavaScript代码防止iframe嵌套
- X-Frame-Options
使用一个HTTP请求头,当值位DENY时浏览器拒绝加载当前页面任何frame页面;若值为sameorigin时允许加载同源页面下的页面;当值为allow-from origin时就允许加载页面的地址
第六章 HTML5安全
6.1 HTML5新标签
使用HTML5新增的标签,比如说video等用于远程加载资源的标签会存在XSS漏洞。
- iframe的sandbox
为了限制iframe的脚本,为iframe定义了一个sandbox属性,将iframe所加载的内容视为一个独立的"源",其中的脚本被限制执行,表单被限制提交,插件被禁止加载。
- postMessage----跨窗口传递信息
允许每一个window对象往其他的擦窗口发送文本信息,从而实现跨窗口消息传递,这个功能是不受同源策略限制。
第七章 注入攻击
7.1 SQL注入
注入的本质就是把用户输入的数据当成代码执行。原来程序要执行的数据拼接了用户输入的数据。
第八章 认证与会话管理
-
认证的目的就是为了认出用户是谁,授权就是为了决定用户能够做什么。
-
认证实际上就是一个验证凭证的过程。
-
单点登陆,用户登陆一次就可以访问所有的系统。
-
OpenID是一个开放的单点登陆系统,用的是URI作为用户在互联网上面的标识,然后网站重定向到openID的提供者认证,认证完成后再重定向回网站。
-
web应用中,用户登陆后,服务器会返回一个sessionID加密写在浏览器的cookie上。
ps:笔者最近开通了微信公众号,大家可以关注一下哦,谢谢大家的支持!
Vue 编码基础
2.1.1. 组件规范
2.1.2. 模板中使用简单的表达式
2.1.3 指令都使用缩写形式
2.1.4 标签顺序保持一致
2.1.5 必须为 v-for 设置键值 key
2.1.6 v-show 与 v-if 选择
2.1.7 script 标签内部结构顺序
2.1.8 Vue Router 规范
Vue 项目目录规范
2.2.1 基础
2.2.2 使用 Vue-cli 脚手架
2.2.3 目录说明
2.2.4注释说明
2.2.5 其他