本文目录一览:
vue问题,。。
可以这么想,他不占位,只不过是将一段代码聚在一起方便控制和操作,其实html也已经有template标签了,可以参考一下
为什么要同源策略
一个重要原因就是保护cookie,cookie中存着用户的登陆凭证,就相当于用户的账号密码。
想象以下场景,你正吃着火锅唱着歌,突然收到一封邮件说你的银行账号存在安全隐患,点击修复。虽然银行的官方网站是,但是想到你的全部家当24块3毛都在卡里,慌乱的你没有注意这么多点击链接输入帐号密码进行登陆。这个网站其实是
iframe src=""
在你输入帐号密码的时候,如果没有同源策略,外部已经有脚本获取你的输入或者直接通过document.cookie窃取了你的信息并且发送给攻击者了。
那有了同源策略,是不是我们的网站就万无一失了呢。并不是,还有很多其他手段威胁到网站安全,比如xss,csrf,clickJacking,本篇文章就简单阐述一下他们的攻击手段和基础攻防(后续添加)。
xss
Cross Site Script,译为是跨站脚本攻击;其原本缩写是 CSS,但为了和层叠样式表(Cascading Style Sheet)有所区分,因而被迫改名为 XSS。主要分为反射型和储存型。
反射型
反射型的特点是不持久,它的特点是xss的代码出现在访问的链接里,作为一部分输入提交到服务器,然后服务器响应后返回浏览器,然后浏览器执行xss的代码。
一般攻击者通过邮件或者其他途径发送链接,用户点击之后达到攻击目的。
储存型
存储型和反射型的差别仅在于他的攻击代码会存储到服务器。这种攻击的最典型例子就是博客论坛的留言功能,访问包含这条留言的页面时,就会触发攻击代码。
比如某个论坛的个人中心里的个人简介,我们就可以在里面尝试注入代码进行练习,先来测试可用的标签
scriptapimgbodybuttonvardiviframemetaobjectmarqueeisindex inputselectkeygenframesetembedsvgmathvideoaudiotextarea
发现只有a标签存活下来,再来测试属性
a href onmouseover onclick
xss存在的主要原因在于没有对于用户的提交内容和接口的返回内容没有进行严格的过滤。
而防止xss的主要手段也是对输入和url参数进行过滤,对输出进行编码,还有就是cookie设置http-only。像常用的vue就有
const decodingMap = {
'': '',
'': '',
'"': '"',
'': '',
'
': '\n',
' ': '\t',
''': "'"
}
来对输入进行进行过滤,还有百度中输入scriptalert(1)/script也会被转译成scriptalert(1)%2Fscript。
至于http-only,严格来说没有阻止攻击,只是阻止了攻击后的cookie劫持。
web前端需要掌握的哪些知识
一个合格的web前端需要掌握哪些技术?
最基础的自然是JavaScript,HTML和css这三种语言。
首先了解下它们到底是什么。
HTML是用户看到的网页的骨架,比如你会发现当前页面分为左中右三个部分,其中还填充了不同的文字和图片;每个子部分还会继续细分,比如当前页面的中间部分下方有输入框等等。
CSS是网页展示的细节控制,比如你会发现有的文字是红底白色,有的子部分占了页面的二分之一宽,有的只占六分之一,有些部分需要用户进行某些操作(如点击,滑动)才会出现等等,这些就是有CSS来控制。
JavaScript是负责捕捉用户在浏览器上的操作,并与后端服务器进行数据交换的脚本语言。当用户在前端进行点击,输入等操作的时候,会触动绑定了该动作的JavaScript脚本,然后JavaScript收集数据,调用后端的api接口,再将后端返回的数据交给HTML和CSS渲染出来。
一个网页的HTML代码和CSS代码是可以直接在浏览器中查看的,你可以直接按F12,就能看到下图右侧的模块,左右侧红框就是代码与实际页面的对应关系。因此如果你看到某个网站的布局很不错,不妨点击F12,进行学习。
前端框架
然而,实际应用中,已经很少有正规的项目组直接用上述三种语言进行web 前端开发了,而是使用很多封装了这三种语言的框架,比如
Vue.js
,angular,react native等等。它们是来自谷歌和Facebook的大神项目组,基于自己的经验,封装了原生前端语言,实现了更多更复杂更酷炫的功能。因此,可以说,学会使用这些框架,能达到事半功倍的效果。
比如用了vue,它是自底向上增量开发的设计,其核心只关心图层,而且还可以与其他库或已存项目融合,学习门槛极其友好;另一方面,vue可以驱动单文件组件和vue生态系统支持的库开发的复杂单页应用。有了这个生态系统,可以说,vue是处在一个不断壮大,不断完善的欣欣向荣的状态。
网络通信协议
由于前后端分离的趋势,前端还需要了解很多网络通信协议的知识,这里不局限于http协议,因为据我的经验,有时候我们还会用到websocket等协议。因此,前端需要简单了解不同协议的特点以及使用方式,但是好消息是不用像学习计算机网络课程一样对每种协议的原理都了解的特别透彻,只要学会如何用前端语言发送这种协议的请求就够了。
vue问题。。。。。。。
Vue.js 本质就是包含各种逻辑的function,初始化Vue的过程就是实例化的过程。
var vm = new Vue({})
console.log(Vue) 之后控制台输出的是 ƒ hn(e){this._init(e)},可以看出,vue对象的本质就是一个function。
开发vue的过程中,需要面对的主要问题有哪些
vue 项目的开发流程
1.$ node -v (检测node版本,node版本需要在 V4 以上)
2.全局安装vue $ npm install -g vue
3.安装脚手架 $ npm install -g vue-cli
4.运行 vue 命令,看是否已安装完毕 $ vue / $ vue list (查看可安装的模板)
5.安装模板 $ vue init webpack(模板) sell(项目名称)
6.? Project name sell
? Project description sell app
? Author crazyCode 1178770858@qq.com
? Use ESLint to lint your code? Yes
? Pick an ESLint preset Standard
? Setup unit tests with Karma + Mocha? No
? Setup e2e tests with Nightwatch? No
7.$ cd sell (进入项目目录)
8.$ ll -a (查看目录结构)
9.$ npm install (安装模块下代码的依赖)
10.$ npm run dev (运行项目)
11.项目准备 A.新建resource文件夹,将图片文件放在 resource 之中
B.通过IcoMoon 将svg 图片制作成矢量图标
12. 设计项目目录A.所以的代码文件都放在 src 文件夹中 ,src 下 一般有三个子目录 assets 、components(在其中自建文件夹,存放组件,满足组件就近维护的原则) 和common(公共的模块和资源,其中有3个子目录,js,stylus,fonts)
B.图片资源文件放在 resource 文件夹之中
13.复制之前的矢量图标文件(4个)及 style.css,存放在fonts文件目录和 stylus文件目录下,将style.css 改名为 icon.styl 且内容格式同步(只需删除文件中{}和 ; 即可)
14.删除assets 和 router 目录
15.编制数据接口 build -- dev-server.js
在 dev-server 中设置 获取 调用 数据
16.安装 Google 的 jsonview 插件,格式化 json 数据
17.在static项目下,新建css文件夹,存放 reset.css ,官网:yingtaow.com
18.配置分号(;) semi (默认eslint 是没有分号的,如果强加;号,会报错,需要到eslintrc.js 下配置)
19.设置代码缩进
20.在App.vue 上进行区块布局
注意路径 ./ 表示当前路径
import *** from '***' -- 引用
export default {
components: {
'v-header': header
}
} -- 注册
export 与 export default 的区别是 export default 是相对于 整个modal 导出
21.安装 stylus-loader之前,需先安装 stylus
$ npm install stylus
$ npm install stylus-loader
如何解决vue对浏览器的兼容问题
当然可以,不使用vue的手脚架,而是在html中通过类似这样的方式引入就行了