技术 2020-07-22
简介上一篇博客介绍了XSS攻击(Cross Site Scripting)的原理。常规过滤脚本等防范方式,不仅麻烦,而且消耗性能,易攻难守,容易出纰漏。那干嘛不制定一个白名单,只有在白名单的内容才能正常执行呢?这个白名单就是Content Security Policy(内容安全策略),简称CSP。...
技术 2020-06-14
攻击原理Cross Site Scripting(跨域脚本攻击),简称XSS,是web应用最见的攻击方式之一。攻击的前提有两个:1. 浏览器可以执行JavaScript代码(这不是废话吗)。2. 网页可以显示用户输入的内容。包括但不限于:根据url中的参数渲染网页、预览输入框写好的内容、留言板等其他...
技术 2020-04-08
简介CSSStyleSheet用于查看和修改当前网页的CSS样式表。网页的样式离不开CSS样式表。以本网站为例,需要三个CSS样式表:bootstrap.css(基础库的样式)、site.css(自定义样式)、scroll-top.css(回到顶部插件的样式)。打开Chrome控制台,输入“docu...
技术 2020-02-29
HTTP/2简介二进制分帧(Frame)Http协议分为header和body两部分。在Http1.1中,header必定是ASCII编码的文本,body部分根据Content-Type来决定是文本还是二进制。而在Http2中,header和body都是二进制传输的,并且统称为“帧”(frame)。...
技术 2020-01-09
三个月前接手一个小程序项目,用户量大,交互复杂,性能一般。想法设法做了各种优化,取得了不错的效果,也在过程中收获了一些经验。昨天在公司内部做了一个技术分享,总结了一些优化经验,顺便整理为本文。提高加载性能典型的web类的应用,跑起来都需要3步:第一步,加载运行环境;第二步,下载代码;第三步,执行代码...
技术 2019-12-12
原理SSH不仅可以通过帐号密码登录,还可以通过非对称加密的密钥登录。原理如下:登录流程是典型的非对称加密应用。私钥一直都在客户端保存,不在网络上传输,不会被中间人窃取。公钥是可以公开的,只需要在服务端把密钥添加进去即可,整个过程不需要用到密码。实践Step1:客户端生成密钥对Linux用户可以用ss...
技术 2019-10-28
位运算基础位运算,就是直接对二进制位进行与、或、非等逻辑运算。位运算并不仅限于布尔类型的数据。Int类型数据在内存中也是以二进制数据进行存储的,位计算可以直接对整数在内存中的二进制位进行操作。举个例子,7的二进制是111,6的二进制是110,直接进行与运算“7&6”,相当于二进制进行与运算“...
技术 2019-09-21
为什么要有BigInt9999999999999999 === 10000000000000000 // true上述等式,返回true。如果代码里出现这种迷惑性的bug,排查起来会非常头疼。JavaScript中Number类型只能安全地表示-9...
技术 2019-08-09
Https连接Https通过加密传输和身份认证保证了http协议传输过程的安全性,然而这并不意味着你开启了https网站就绝对安全了。大部分用户都很少直接在地址栏输入https://,而是直接输入网址。此时浏览器默认发起http请求,再由服务端进行30x重定向(通常是301永久重定向)到https。...
技术 2019-07-01
Yii2 extension for large file chunk upload. Base on WebUploader.github:https://github.com/oonne/yii2-webuploaderInstallationThe preferred way to insta...