自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(19)
  • 收藏
  • 关注

原创 JS正则表达式语法详解

JS正则表达式语法详解前言正则表达式在线图形化描述:https://regexper.com什么是正则表达式?说白了,就是用来按照某种规则去匹配字符串的表达式RegExp对象JS 通过内置对象 RegExp 支持正则表达式,有两种方法实例化 RegExp 对象字面量构造函数字面量范例:var reg = /\bis\b/'He is a boy. This is a do...

2019-12-16 00:15:16 1648 4

原创 pm2常用命名

pm2 --version查看版本pm2 ls查看任务列表pm2 start ./app.js启动,单文件pm2 start npm -- run dev启动,package.json文件中的npm脚本,注意:-- run中间有个空格pm2 start npm --name hehe -- run dev启动并给任务起名字,注意:--name 中间不能有空格,-- run 只能写在最后pm2 stop taskId|taskName停止任务pm2 delete taskId|task

2020-12-28 11:04:15 2095

转载 XSS攻击原理&解决方法

概述XSS攻击是Web攻击中最常见的攻击方法之一,它是通过对网页注入可执行代码且成功地被浏览器执行,达到攻击的目的,形成了一次有效XSS攻击,一旦攻击成功,它可以获取用户的联系人列表,然后向联系人发送虚假诈骗信息,可以删除用户的日志等等,有时候还和其他攻击方式同时实施比如SQL注入攻击服务器和数据库、Click劫持、相对链接劫持等实施钓鱼,它带来的危害是巨大的,是web安全的头号大敌。攻击的条件实施XSS攻击需要具备两个条件:需要向web页面注入恶意代码;这些恶意代码能够被浏览器成功的执

2020-11-04 11:43:14 718

转载 CSRF攻击原理&防御方法

CSRF概念CSRF跨站点请求伪造(Cross—Site Request Forgery),跟XSS攻击一样,存在巨大的危害性,你可以这样来理解:攻击者盗用了你的身份,以你的名义发送恶意请求,对服务器来说这个请求是完全合法的,但是却完成了攻击者所期望的一个操作,比如以你的名义发送邮件、发消息,盗取你的账号,添加系统管理员,甚至于购买商品、虚拟货币转账等。例如:Web A为存在CSRF漏洞的网站,Web B为攻击者构建的恶意网站,User C为Web A网站的合法用户。CSRF攻击攻击原理及过程如下:

2020-11-04 10:43:40 1199 3

原创 当在地址栏中输入内容回车时,浏览器干了啥?

当在地址栏中输入内容回车时,浏览器干了啥?浏览器进程中的UI线程会监听到用户的输入,并判断输入内容类型,如果是关键字,则会使用默认配置的搜索引擎来查询,如果是地址,则会交给网络线程处理,通过DNS解析获取IP地址,接着开始与服务器建立TCP连接获取数据,获取到数据后,浏览器的安全系统会检查是否存在安全问题,如果存在,则会提示用户,用户也可选择无视,继续访问,接着网络线程会通知UI线程准备完毕,然后UI线程会创建一个渲染器进程,并通过IPC管道把数据传递给渲染器进程来渲染页面,接着渲染器进程的主线程开始逐层

2020-08-12 12:32:32 506 1

原创 简单的下载图片至本地

<iframe id="saveImg" src="图片路径" style="display:none;"></iframe><a href="#" onclick="saveImg.document.execCommand('saveAs');">下载</a>

2020-04-20 17:29:19 253

原创 Array.slice 与 Array.splice 的区别

Array.slice方法接收两个参数:a:起始下标b:结束下标返回由 a(包括)至 b(不包括)的元素所组成的数组,若一个参数都不传,则返回由全部元素组成的数组。该方法执行不影响原数组元素。范例图:Array.splice方法接收若干参数:a:起始下标b:提取个数…n:之后若干个是待插入的新元素返回由从 a(包括)开始的 b 个元素组成的数组,并将 …...

2020-04-20 17:28:05 950

原创 随笔 - 填坑量 != 经验

我们在各自的专业领域都会遇到一些专业方面的问题,遇到问题解决问题,是必要的,但不能拿解决问题的多少来衡量一位码仔在专业领域的能力。每个人在对待同一个问题的时候,思想并非统一的,那么就意味着解决这个问题的方案并非统一的,自然所遇到“坑”就不同了,但最终都能解决该问题,而且遇到的“坑”少的肯定比遇到的“坑”多的效率要高。就好比A、B两人赛跑,目的地相同,A选择曲长的坑洼泥巴路,B选择短直的平坦橡胶...

2020-03-25 21:32:16 268 1

原创 Git常用命令

Git常用命令初始化本地仓库git init配置本地用户名&邮箱git config user.name andremaogit config user.email andremao@126.comNote:这个配置仅当前项目有效,且优先级高于全局配置推荐使用本地配置,因为实际开发中可能存在多个项目并且账号不同的情况配置全局用户名&邮箱git config ...

2019-12-26 22:40:59 1173 3

原创 Mac 安装 mysql-5.7.28-macos10.14-x86_64 版本

Mac 安装 mysql-5.7.28-macos10.14-x86_64 版本安装包下载(dmg格式)百度网盘分享链接(永久有效):链接:https://pan.baidu.com/s/1hGry0uoWguL9sIt9DrWhdw 密码:ski3安装步骤双击dmg安装包,无脑下一步即可打开系统设置找到 MySQL 图标先停止服务编辑 ~/.bash_...

2019-12-23 01:15:14 2289 1

原创 JS原型&原型链&继承

// Object.getPrototypeOf(实例) === 构造函数.prototype// 实例.constructor === 构造函数.prototype.constructor// var a = Object.create(b); 创建并返回一个实例,Object.getPrototypeOf(a) === b// 实现继承最佳方式:// 1) 子构造函数.protot...

2019-09-08 20:40:20 291

原创 HTTP状态码301、302重定向的区别

HTTP状态码301、302重定向的区别官方的比较简洁的说明:301 redirect:301 代表永久性转移(Permanently Moved)302 redirect:302 代表暂时性转移(Temporarily Moved)交互流程客户端在请求网址A时,服务端将其重定向到网址B,响应301或者302状态码,并携带Location响应头,其值就是网址B,客户端接收到301或者...

2019-06-26 13:54:02 1035 1

原创 HTTP 状态码 304 缓存机制

HTTP状态码304缓存机制交互流程客户端第一次请求服务端的某个地址时,服务端会在响应时携带ETag与Last-Modified响应头,客户端下次再发送同一地址的请求时,会携带If-None-Match与If-Modified-Since请求头,而If-None-Match就是ETag的值,If-Modified-Since就是Last-Modified的值,这时服务端在接收请求后会获取请求头...

2019-06-26 11:13:26 1335

原创 纯nodejs实现反向代理,不用第三方模块

纯nodejs实现反向代理,不用第三方模块直接上代码:const http = require('http');const app = http.createServer();const proxyConf = { hostname: 'localhost', port: 80}const proxyHTTPRequest = (req, res) => {...

2019-06-20 22:36:54 3711

原创 form表单的enctype属性值说明

form表单的enctype属性值说明默认值:application/x-www-form-urlencoded表单数据形如get请求参数如果涉及到上传文件,用:multipart/form-data将表单数据编码成二进制类型...

2019-06-20 18:38:33 994

原创 Express配置模板引擎

Express配置模板引擎上代码const express = require('express');const arttemplate = require('express-art-template');const path = require('path');const app = express();// 使用arttemplate模板引擎解析art后缀的模板,可以有同时存在多种...

2019-06-10 17:03:14 749

原创 node第三方模块body-parser的urlencoded方法的extended参数说明

node第三方模块body-parser的urlencoded方法的extended参数说明范例:const bodyParser = require('body-parser');const express = require('express');const app = express();app.use(bodyParser.urlencoded({ extended: false...

2019-06-10 16:33:45 10231 2

原创 跨域与解决方法详解

跨域与解决方法详解什么是跨域?在介绍跨域之前,我们先来了解下一个域名地址的组成:JS 出于安全方面的考虑,不允许跨域调用其他页面的对象,那什么是跨域呢,简单地理解就是因为浏览器同源策略的限制,a.com 域名下无法操作 b.com 或是 c.a.com 域名下的对象。当协议、子域名、主域名、端口号中任意一个不相同时,都算作不同域。不同域之间相互请求资源,就算作“跨域”。例如:http:/...

2019-06-01 15:21:25 370

原创 MySQL常用语法

MySQL常用语法登录数据库mysql -uroot -proot -P3306 -h127.0.0.1 --prompt "\u@\h \d>"-u // 登录用户-p // 登录密码-P // 端口-h // host–prompt “\u@\h \d>” // 登录时,修改mysql命令行提示符\u // 当前登录用户@ // 原义字符\h // 当前h...

2019-05-31 11:22:58 459

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除