blog icon indicating copy to clipboard operation
blog copied to clipboard

blog

Results 38 blog issues
Sort by recently updated
recently updated
newest added

XSS是跨站脚本攻击,主要特点是开发者之外的人向页面内容注入了脚本执行。 XSS攻击有两个要素,一是来自用户或者三方的内容,二是被当做html或者javascript代码执行。 在面对XSS攻击时,需要牢记的一句话是:**一切输入和输出都是敌对的!** ### XSS 攻击的输入点 开发者之外的人可以通过以下输入点向页面中注入攻击脚本: * `window.location/document.location/document.referrer` * 来自url的内容,因为链接可能来自外部页面,所以页面url应当视为外部用户内容。 * 后端接口返回数据 * 来自服务端的数据,这些数据可能由其它系统提供,其中可能包含用户的直接输入,所以应该把通过后端接口请求得到的数据视为外部用户产生内容。 * `document.cookie` * `cookie`有较多渠道被写入,为安全起见,应当视为用户产生内容。 * `input.value/textarea.value` * 用户产生内容。 ### XSS 攻击的输出点 XSS 攻击输出点是开发者在代码中写的语句,这些语句可能会将用户输入的内容作为代码执行,进而发生XSS 攻击。XSS 攻击主要有以下输出点:...

无论是前端还是后端,都存在着模板引擎。模板引擎有着丰富的表现力,使得我们可以根据不同的数据渲染出不同的页面结构以及内容。在es6中引入了模板字符串,使得我们可以在字符串中嵌入变量、表达式以及可以直接写多行字符串。另外,模板字符串还支持嵌套使用。这些特性,一些模板引擎基本的功能,我们可以用es6模板字符串来实现。 ### for 循环 * 一种比较直接的方式是: ```javascript ${ (()=>{ let html = ''; for (let i = 0, len = blocksData.length; i < len; i++) { let curData = blocksData[i];...

### VIM 插件管理器 [Vundle](https://github.com/VundleVim/Vundle.vim) * 下载 `$ git clone https://github.com/VundleVim/Vundle.vim.git ~/.vim/bundle/Vundle.vim` * 配置插件 在`~/.vimrc`文件中添加 set nocompatible " be iMproved, required filetype off " required " set the runtime path to...

### 下载 官网下载地址:[http://www.charlesproxy.com/latest-release/download.do](http://www.charlesproxy.com/latest-release/download.do) 下载后直接安装即可 ### 抓包 #### 一、http抓包 * 1、打开Charles程序 * 2、查看Mac电脑的IP地址,系统偏好设置->网络就可以查看到了,比如我的ip地址是:30.11.160.175 * 3、打开iOS设置,进入当前wifi连接(Mac在一个局域网内),设置HTTP代理Group,将服务器填为上一步中获得的IP,即30.11.160.175,端口填8888:

介绍 --- 这段时间做了个后台的前端项目。说实话,之前并没有做过后台的项目。在做了后台项目后,发现最重要的是要熟练掌握表单相关的技术。这篇文章将我所做的后台项目中用到的表单相关的知识做一个总结,也算是一种积累吧。:) 一个简单的表单示例 下面是一个简单的表单示例: ```html 姓名: 性别: 男 女 ``` 页面如图所示: ![](http://img.alicdn.com/tps/TB1h_YhLXXXXXb3aXXXXXXXXXXX-239-81.jpg) 当我们点击send按钮时,就能向服务器端发送表单。点击重置按钮时,input中的value值将会是我们设置的默认值。 form的action属性值为服务端处理我们提交的表单的URI。 method是表单提交的方式。 input标签是表单中的控件,用户在input中输入的值,或者用户选择了某个radio选项的值就是这个控件的value值。当提交表单时,input中的name和value值编码后传给服务器端,服务器端解码后根据name和value键值对获取用户提交的信息。 表单提交的过程 --- 成功控件 成功控件是能被提交给服务端的控件,每个成功控件都有其name已经value值,以被作为form数据的一部分传给服务器端。一个成功控件必须在form标签之中,并且有name值。 此外,成功控件还需满足以下条件: * 控件不能设置为disabled。 * 如果form包含多个提交按钮,只有被点击的提交按钮才是成功控件。 * 被选中的checkbox才算成功控件。 * 被选中的radio才算成功控件。...

在绝对定位时,css样式中设置margin:0 auto;失效问题,例子如下: ```css .middle-div { width: 100px; height: 100px; position: absolute; margin: 0 auto; } ``` 如上的方式并不能实现元素的水平居中。而采用相对定位则可以: ```css .middle-div { width: 100px; height: 100px; position: relative; margin: 0 auto; }...

转载自@笑博,翻译自google大牛 1. 删除不必要的下载(即减少http访问请求) 2. 优化基于文本的资产的编码和传输大小 3. 图片优化 4. 网页字体优化 5. HTTP 缓存 ### 1. 删除不必要的下载(即减少http访问请求)(最快和最好的优化资源是不需要下载的资源。) * 网页往往会包含一些不必要的资源;或者更糟的是,包含的某些资源会影响网页性能,同时还无法给访问者或所处的网站带来太大价值。 * 要实现最佳效果,应针对网页上的每个资源,定期清点和重新评估。 ### 2. 优化基于文本的资产的编码和传输大小 * 数据压缩 - 将浏览器必须下载的剩余资源的总大小减至最小 * 源码压缩:预处理和特定于内容的优化 * 使用...

### 绝对定位居中(Absolute Centering)技术 ```css .Absolute-Center { margin: auto; position: absolute; top: 0; left: 0; bottom: 0; right: 0; } ``` * 解释: 通过以上描述,绝对居中(AbsoluteCentering)的工作机理可以阐述如下: 1、在普通内容流(normal content flow)中,margin:auto的效果等同于margin-top:0;margin-bottom:0。 W3C中写道If 'margin-top', or'margin-bottom' are...