1.什么是csrf攻击?
cross-Site Request Forgery 跨站请求伪造
攻击者首先盗用了你的身份,然后以你的名义进行某些非法操作。CSRF能够使用你的账户发送邮件,获取你的敏感信息,甚至盗走你的账户购买商品等。CSRF攻击其实是利用了web中用户身份认证验证的一个漏洞:简单的身份验证仅仅能保证请求发自某个用户的浏览器,却不能保证请求本身是用户自愿发出的。
GET类型的CSRF
仅仅须要一个HTTP请求。就能够构造一次简单的CSRF。
样例:
<img src=http://www.mybank.com/Transfer.php?toBankId=11&money=1000>
首先,你登录了银行站点A,然后訪问危急站点B,这时你会发现你的银行账户少了1000块。银行认为这是一个更新资源操作(转账操作),所以就立马进行转账操作。
POST类型的CSRF
这种类型的CSRF危害没有GET型的大,利用起来通常使用的是一个自动提交的表单,如:
<form action=http://wooyun.org/csrf.php method=POST>
<input type="text" name="xx" value="11" />
</form>
<script> document.forms[0].submit(); </script>
访问该页面后,表单会自动提交,相当于模拟用户完成了一次POST操作。
2. router作为全局插件来使用
在main.js中导入router后再其他组件就可以使用this.$.router.push了
main.js中
import {router} from "@/router";
组件中
this.$router.push("/index");
如果不这样做,就要在每个组件导入
组件中
import {router} from "@/router";
router.push("/index");
3. vue组件书写规范
一般export的name是由两个字母组成,一般是XXPage,如下面写Header会报错,而写成HeaderPage不会
export default {
name: "HeaderPage"
}
但是如这样的名称就不必加page
export default {
name: "MainContent"
}
export default {
name: "SideBar"
}
4. 简单概括一下promise
Promise 是 ES6 新增的语法,解决了回调地狱的问题。
无论是ES6的Promise也好,jQuery的Promise也好,不同的库有不同的实现,但是大家遵循的都是同一套规范,所以,Promise并不指特定的某个实现,它是一种规范,是一套处理JavaScript异步的机制。
Promise 本质上就是一个绑定了回调的对象,而不是将回调传回函数内部。
所以,Promise在一定程度上解决了回调函数的书写结构问题,但回调函数依然在主流程上存在,只不过都放到了then(…)里面,
promise成功是then,失败是catch
this.$api.login.login("/login", this.loginForm)
.then(res => {
console.log(res);
this.$router.push("/index");
}).catch(err => {
console.log(err);
this.$router.push("/");//跳到登录页面
})