03 2020 档案
摘要:async/await async是ES7的与异步操作有关的关键字,其返回一个Promise对象,await操作符用于等待一个Promise对象,它只能在异步函数async function内部使用。async/await的目的是简化使用多个promise时的同步行为,并对一组Promises执行某
阅读全文
摘要:Promise对象 JavaScript是单线程的语言,通过维护执行栈与任务队列而实现了异步操作,setTimeout与Ajax就是典型的异步操作,Promise就是异步操作的一个解决方案,用于表示一个异步操作的最终完成或失败及其结果值,Promise有各种开源实现,在ES6中被统一规范,由浏览器直
阅读全文
摘要:对称加密与非对称加密 在数字加密算法中,可划分为对称加密和非对称加密。 对称加密 对称加密算法中对于数据的加密与解密使用同一密钥,即使用相同的密码对内容进行加密解密。 内容 + 密钥 = 密文 密文 - 密钥 = 原文 优点 加解密速度快,效率高,适合一对一的信息加密传输 缺点 数据传输前必须协商好
阅读全文
摘要:数组遍历的主要方式`for`、`forEach`、`map`、`for in`、`for of`
以及对于数组的操作方法`every`、`some`、`find`、`findIndex`、`filter`
阅读全文
摘要:HTTPS加密传输过程 HTTPS全称Hyper Text Transfer Protocol over SecureSocket Layer,是以安全为目标的HTTP通道,在HTTP的基础上通过传输加密和身份认证保证了传输过程的安全性。HTTPS在HTTP的基础下加入SSL层,HTTPS的安全基础
阅读全文
摘要:HTML节点操作 HTML节点的基本操作,添加节点,替换节点,删除节点,绑定事件,访问子节点,访问父节点,访问兄弟节点。 文档对象模型Document Object Model,简称DOM,是W3C组织推荐的处理可扩展标记语言XML的标准编程接口,是一种与平台和语言无关的应用程序接口API。 根据W
阅读全文
摘要:new运算符 在JavaScript中new是一个语法糖,可以简化代码的编写,可以批量创建对象实例。 语法糖Syntactic sugar,指计算机语言中添加的某种语法,这种语法对语言的功能并没有影响,但是更方便程序员使用。通常来说使用语法糖能够增加程序的可读性,从而减少程序代码出错的机会。 实例
阅读全文
摘要:CSS劫持攻击 CSS劫持是一种并不很受重视的劫持方式,但是其也有一定的危害,且由于其并不一定需要依赖JavaScript,这使得此种攻击方式更容易实现。 ClickJacking点击劫持 当访问某网站时,利用CSS将攻击者实际想让你点击的页面进行透明化隐藏,然后在页面后显示 一些东西诱导让你点击,
阅读全文
摘要:HTTP协议概述 HTTP超文本传输协议,基于TCP/IP通信协议传输数据。 特点 HTTP是无连接的:无连接的含义是限制每次连接只处理一个请求。服务器处理完客户的请求,并收到客户的应答后,即断开连接,采用这种方式可以节省传输时间。 HTTP是媒体独立的:只要客户端和服务器知道如何处理的数据内容,任
阅读全文
摘要:JS中this的指向 this的指向在函数定义的时候是确定不了的,只有函数执行的时候才能确定this到底指向谁,实际上this的最终指向的是那个调用它的对象。 实例 定义函数与对象并调用,注意只有调用函数才会使this指向调用者,但箭头函数除外。 function s(){ console.log(
阅读全文
摘要:函数声明与函数表达式 定义一个函数的方法主要有三种 函数声明、函数表达式、new Function构造函数,函数声明与函数表达式定义的函数较为常用,构造函数的方式可以将字符串定义为函数。 函数声明 函数声明会将声明与赋值都提前,也就是整个函数体都会被提升到作用域顶部。 s(); // 1 funct
阅读全文
摘要:CSS优先级 当样式表比较复杂时,很容易出现多个样式对作用于一个标签的情况,这时就需要注意CSS优先级来决定哪些样式会被作用于该标签,哪些会被覆盖。 选择器的优先级 对于标签自有的属性,选择器的优先级规则为: 内联样式 > ID 选择器 > 类选择器 = 属性选择器 = 伪类选择器 > 标签选择器
阅读全文
摘要:iframe框架及优缺点 HTML5不再支持使用frame,关于frame与iframe的区别,可以参阅 iframe与frame的区别。 基本使用 src:规定在iframe中显示的文档的URL。 frameborder:规定是否显示框架周围的边框。 scrolling:规定是否在iframe中显
阅读全文
摘要:JS事件流模型 事件捕获Event Capturing是一种从上而下的传播方式,以click事件为例,其会从最外层根节向内传播到达点击的节点,为从最外层节点逐渐向内传播直到目标节点的方式。 事件冒泡Event Bubbling是一种从下往上的传播方式,同样以click事件为例,事件最开始由点击的节点
阅读全文
摘要:事件冒泡及阻止 当一个元素接收到事件的时候,会把他接收到的事件传给自己的父级,一直到window,当然其传播的是事件,绑定的执行函数并不会传播,如果父级没有绑定事件函数,就算传递了事件,也不会有什么表现,但事件确实传递了。 事件冒泡的原因是事件源本身可能没有处理事件的能力,即处理事件的函数并未绑定在
阅读全文
摘要:重绘与回流 重绘与回流是浏览器渲染的时候进行的操作,当页面内容发生改变的时候,就会触发重绘或者回流 重绘 当渲染树中的一些元素需要更新属性,而这些属性只是影响元素的外观,风格,而不会影响布局的,比如background-color,则就叫称为重绘Repaint,重绘不一定触发回流。 回流 当渲染树中
阅读全文
摘要:浏览器渲染与内核 浏览器内核可以分成两部分:渲染引擎与JS引擎。最开始渲染引擎与JS引擎并没有明确的区分,但随着JS引擎越来越独立,内核就越来越倾向于只指渲染引擎。 渲染过程 不同浏览器内核的渲染方式不同,但整体流程基本一致: 自上而下,首先解析HTML标签,生成DOM Tree。 在解析到<lin
阅读全文
摘要:apply()、call()、bind() 每个Function对象都存在apply()、call()、bind()方法,其作用都是可以在特定的作用域中调用函数,等于设置函数体内this对象的值,以扩充函数赖以运行的作用域。 使用 apply()、call()、bind()都能改变函数对象的this
阅读全文
摘要:匿名函数与自执行函数 匿名函数就是指的没有名字的函数,即定义函数对象时不定义函数体名字,但是必须将匿名函数作为表达式赋予一定操作,比如将其作为变量值或者让其自执行,否则这次定义将无意义,解释器也会抛出异常。 匿名函数 /** * 定义函数 声明式 * 声明式会导致函数提升,function会被解释器
阅读全文
摘要:JavaScript变量提升 在JavaScript中变量声明与函数声明都会被提升到作用域顶部,优先级依次为: 函数声明 变量声明 变量赋值。 变量提升 var的变量提升 console.log(a); // undefined var a = 1; console.log(a); // 1 //
阅读全文
摘要:Vue Cli4与Vue Cli2区别浅谈 当时学习 Vue Cli 的时候看的是 Vue Cli2 的相关教程,当把 package.json 上传 github 的时候提醒有安全问题,于是准备使用最新版的 Vue Cli ,我一直认为才更新到 Vue Cli3,没想到都到Vue Cli4了 可能
阅读全文
摘要:JavaScript闭包 函数和对其词法环境lexical environment的引用捆绑在一起构成闭包,也就是说,闭包可以让你从内部函数访问外部函数作用域。在JavaScript,函数在每次创建时生成闭包。在本质上,闭包是将函数内部和函数外部连接起来的桥梁。 定义闭包 为了定义一个闭包,首先需要
阅读全文
摘要:localStorage与sessionStorage localStorage和sessionStorage是HTML5提供的对于Web存储的解决方案。 相同点 都与HTTP无关,是HTML5提供的标准,当发起HTTP请求时不会与Cookie一样自动携带。 都是以键值对的形式存在,即Key-Val
阅读全文
摘要:Cookie与Session 会话跟踪是Web程序中常用的技术,HTTP协议是无状态的,确定用户身份就需要跟踪用户的整个会话。最常用的会话跟踪是使用Cookie与Session,简单来说Cookie通过在客户端记录信息确定用户身份,Session通过在服务器端记录信息确定用户身份。 Cookie 由
阅读全文
摘要:CSS选择器 每日更新前端基础,如果觉得不错,点个star吧 😃 https://github.com/WindrunnerMax/EveryDay 使用 对`HTML`页面中的元素实现一对一,一对多或者多对一的控制,这就需要用到选择器。 页面中的元素就是通过 选择器进行控制的。 id选择器 类选
阅读全文
摘要:微信小程序校历组件 校历组件,可以作为校园小程序的插件,如果觉得不错,点个star吧 😃 Github: https://github.com/WindrunnerMax/SCalendar 山科小站小程序: https://github.com/WindrunnerMax/SHST 效果图 使用
阅读全文
摘要:原型与原型链 JavaScript有着七种基本类型String、Number、Boolean、Null、Undefined、Symbol、Object,前六种为基本数据类型,Object为引用类型。函数本质上是Object类型,也就是一个对象。 值得注意的是typeof (null)会返回Objec
阅读全文
摘要:CSS盒子模型 所有的HTML元素都可以看作是一个盒子。 将盒子模型拆分,则包括 外边距+边框+填充+内容。 显得专业一些,box model = margin+border+padding+content。 | margin | | | | | border | | | | | | | | | p
阅读全文
摘要:SQL注入 SQL注入即是指web应用程序对用户输入数据的合法性没有判断或过滤不严,攻击者可以在web应用程序中事先定义好的查询语句添加额外的SQL语句,从而实现非法操作,获取数据库数据,服务器提权等,很多机构将SQL注入作为第一危险的安全漏洞。 原理 SQL注入攻击是通过操作输入来修改SQL语句,
阅读全文
摘要:CSRF跨站请求伪造 跨站请求伪造通常缩写为CSRF或者XSRF,是一种挟制用户在当前已登录的Web应用程序上执行非本意的操作的攻击方法。跟跨网站脚本XSS相比,XSS利用的是用户对指定网站的信任,CSRF利用的是网站对用户浏览器的信任,浏览器对于同一domain下所有请求会自动携带cookie。
阅读全文
摘要:XSS跨站脚本攻击 跨站脚本攻击XSS,是最普遍的Web应用安全漏洞。这类漏洞能够使得攻击者嵌入恶意脚本代码到正常用户会访问到的页面中,当正常用户访问该页面时,则可导致嵌入的恶意脚本代码的执行,从而达到恶意攻击用户的目的。 类型 反射型XSS: 攻击者事先制作好攻击链接,需要欺骗用户自己去点击链接才
阅读全文
摘要:Ubuntu安装QQ机器人 看了看现在QQ机器人似乎只有酷Q机器人有Docker可以在linux上运行了 那就k开始装酷Q机器人,资源占用也不是很大,大概占用180M内存吧 安装酷Q HTTP 首先安装好 酷Q官网提供了 "COOLQ Docker 2.0" 但是我是打算通过 进行一些功能开发的,于
阅读全文
摘要:ES6新特性 ES6的常用新特性简介,全部特性可参阅 Ecma-International MDN ES6入门 ES6 教程 ES6全称ECMAScript 6.0,是JavaScript的下一个版本标准,2015.06发版。ECMAScript和 JavaScript的关系是,前者是后者的规格,后
阅读全文
摘要:CSS伪类与伪元素 CSS引入伪类和伪元素概念是为了格式化文档树以外的信息。也就是说,伪类和伪元素是用来修饰不在文档树中的部分,比如,一句话中的第一个字母,或者是列表中的第一个元素。 伪类 伪类用于当已有元素处于的某个状态时,为其添加对应的样式,这个状态是根据用户行为而动态变化的。比如说,当用户悬停
阅读全文
摘要:HTML语义化 语义化可以总结为 根据内容选择标签,用最恰当的标签来标记内容。 例如网页中的标题使用<h1>~<h6>这样的标签,而不是使用<div>+css。 语义化好处 使HTML结构变得清晰,有利于维护代码和添加样式。 通常语义化HTML会使代码变的更少,使页面加载更快。 即使在没有CSS样式
阅读全文
摘要:Ajax 描述 Ajax在浏览器是通过XMLHttpRequest对象来实现数据传输的。 XMLHttpRequest对象进行HTTP请求前必须通过open初始化,open接受五个参数,分别为请求方法、请求链接、异步标识、账号和密码用以服务端验证。 open(Method, URL, Asynchr
阅读全文
摘要:DOCTYPE DOCTYPE是document type(文档类型)的简写,在web设计中用来说明使用的XHTML或者HTML是什么版本。 HTML5 不基于 SGML,所以不需要引用 DTD。 <!DOCTYPE html>声明必须是 HTML 文档的第一行,位于 <html> 标签之前。 <!
阅读全文
摘要:跨域 制定HTML规则时,出于安全的考虑,一个源的网站不允许与另一个源的资源进行交互,浏览器制定此规则为同源策略。 同源即指的网站具有相同的域,即 协议(protocol)、主机(host)、端口号(port) 相同。 跨域资源嵌入是允许的,但是浏览器限制了Javascript不能与加载的内容进行交
阅读全文
摘要:垂直居中 首先将<html>与<body>的高度设置为100%(为演示父元素不定宽高的效果),并清除<body>的默认样式。 html,body{ margin: 0; height: 100%; } 垂直居中大致分为两类,父元素定宽高与父元素不定宽高,将两类样式以及子容器设定好。 .set-par
阅读全文
摘要:将SublimeText加入右键菜单 将代码保存为 双击打开安装即可 注意 是sublime安装路径 执行添加后注册表如下
阅读全文
摘要:强智教务系统验证码识别 OpenCV 强智教务系统验证码验证码字符位置相对固定,比较好切割 找准切割位置,将其分为四部分,匹配自建库即可,识别率近乎100%,如果觉得不错,点个star吧 😃 https://github.com/WindrunnerMax/SWVerifyCode 提供Java、
阅读全文
摘要:强智教务系统验证码识别 Tensorflow CNN 一直都是使用API取得数据,但是API提供的数据较少,且为了防止API关闭,先把验证码问题解决 使用Tensorflow训练模型,强智教务系统的验证码还是比较简单的,不用CNN一样可以识别的很好,使用CNN也算是重新温习一下CNN 训练集3109
阅读全文
摘要:QQ小程序支付 Java后端 同学折腾QQ小程序的支付折腾了好几天,没有完成统一下单,因为我做过微信和支付宝支付,他就让我帮忙搞 我搞了好两三个小时,也没搞出来,最终我觉得问题在商户key那里,问了几次甲方,他说key没问题 我仍然觉得问题很有可能在key,就去直接给他重置了key,然后,就成功完成
阅读全文
摘要:手机抓包HTTPS (Fiddler & Packet Capture) 以前写了一个小游戏(消灭病毒)的刷金币小脚本,使用需要获取openid ,就需要抓微信的HTTPS包 一直都是用Fiddler抓电脑的包,Packet Capture抓手机的包,突然想试一下用电脑抓手机的包 https://g
阅读全文
摘要:ThinkPHP5.0 漏洞测试 自从ThinkPHP发布漏洞补丁以来,服务器不知道多少次受到了批量扫描漏洞来抓取肉鸡的请求 虽然官方早已发布补丁,还是想试一下TP漏洞,测试两个漏洞 一、全版本执行漏洞 由于对控制器名没有明确的检测,在没有开启强制路由的情况下,直接就可以执行phpinfo(),如果
阅读全文
摘要:Nvue/Weex 使用Uniapp做了一个App,感觉性能不是很好,了解过Uniapp的Nvue,就想做一个纯Nvue项目,其实基本就是做一个Weex项目,不得不说坑是真的多,但是渲染性能真的是没得比 本项目开发环境为 UNIAPP 的 纯NVUE 项目,与WEEX有不同之处 "https://g
阅读全文
摘要:支付宝小程序获取 user_id(openid) ThinkPHP版 近期支付宝小程序个人公测了,就想着玩一下,没想到就获取用户唯一标识都这么麻烦,微信的openid的话Get请求一下就完事了,支付宝的user_id,需要对接SDK以及公钥私钥验签,而且支付宝的开发工具巨占内存,打开就至少占用2G内
阅读全文
摘要:简单安全防护 一、服务器防护 1. 端口防护 尽量将端口禁用,尽量不要将端口暴露在公网,尽量仅供127.0.0.1访问 如非必要,尽量不要将服务暴露在公网,尤其是数据库等服务 设置连续登录失败禁用一段时间,防爆破 2. 网站防护 攻击者一般直接使用ip来攻击网站,可以将ip访问的默认网站只写一个首页
阅读全文
摘要:Recovery Recovery是一种可以对安卓手机内部的数据文件进行修改的模式,类似电脑的PE。不同的recovery有不同的功能。使用recovery可以说是刷机(卡刷)的基础,想要比较顺畅的刷机了解好rec是必不可少的。 PS:为何不先介绍线刷 线刷看起来更容易,直接用手机连接电脑然后用各类
阅读全文
摘要:Vue学习笔记 "TOC" 一、环境搭建 1. Node.js、Npm、Cnpm Npm依赖于Node.js,直接下载安装,并配置环境变量 由于个人比较习惯使用 shift+右键 唤起powershell来执行命令,默认powershell不允许执行脚本文件,需要解除此安全策略 Npm默认安装位置在
阅读全文
摘要:山科小站 山东科技大学校园小程序,如果觉得不错,点个star吧 😃 Github:https://github.com/WindrunnerMax/SHST 一、微信小程序转UNIAPP 最近转微信小程序项目到UNIAPP项目遇到的的一些注意事项和坑 整体来说迁移项目并不是很复杂,更多的是一些重复
阅读全文
摘要:VScode配置CMD本地运行环境(2.0) "官方Task.json说明" "完整的Task.json配置信息" "Task.json预定义变量" 看了很多网上的教程都说需要下载VScode的python插件,然而我只是想配置一下能使用其在终端输入输出,研究了一段时间发现其实所有能在cmd运行的命
阅读全文