自定义博客皮肤VIP专享

*博客头图:

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

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

博客底图:

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

栏目图:

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

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

visitor009的博客

博客描述

  • 博客(42)
  • 收藏
  • 关注

原创 MySQL 注入笔记

靶场环境:dvwa , 安全等级 low判断存在SQL注入提交'报错id=1 和 id =1 and 1=1 返回的结果一样,id=1 和 id =1 and 1=2 返回的结果不一样构造正确的SQL语句-- 数字型 id=1 or 1=1select * from where id=1 or 1=1--字符型 ' id=' or 2<>'1select * from where id='' or 2<>'1'--截断型 id=1 or 1=1 --select

2021-12-22 15:03:58 141

原创 免费题库CISP,NISP,SCSA,SCSP,CISA,CISSP,CISP-PTE

试题,题目CISP,NISP,SCSA,SCSP,CISA,CISSP,CISP-PTE

2021-12-07 17:40:27 722 2

原创 js PC端选择框特效

<!DOCTYPE html><html lang="zh"><head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>can

2021-01-02 20:17:33 226 2

原创 算法设计方法

蛮力法把所有的可能都算一遍,不考虑优化之类的。简单,低效率算法设计过程:计算所有的可能性即可典型算法:冒泡排序例子:给定一组数字和目标值,找出两个数字相加等于目标值, 返回索引。思路:双重循环,找到所有两个数字的组合相加 == 目标值var twoSum = function(nums, target) { for (let i=0; i<nums.length; i++) { for (let j=i+1; j<nums.length; j++) {

2020-09-01 21:52:57 1970

原创 常见数据结构Javascript实现

存储集合// 集合class Set { constructor() { this._list = [] } get size() { return this._list.length; } get isEmpty() { return this._list.length === 0; } add(e) { if (!this._list.includes(e)) {

2020-08-30 10:27:47 148

原创 数据结构与算法学习指南

动画演示 、基础知识 、练习网站

2020-07-19 19:03:59 203

原创 算法分析

问题描述:在1000个数内,找出3个相加和为506有多少个// jslet count = 1000;let target = 506;let result = 0;for(let i=1; i<=count; i++) { for (let j=1; j<=count; j++) { for (let k=1; k<=count; k++) { if (i+j+k===target) { result++; } }

2020-07-19 18:47:37 128

原创 Web前端性能优化-综合篇

chrome开发者工具使用performance 性能监控rendering > ftp meter 动画性能监控,60fps正常,越高越好合并与压缩合并:把css、js分别合并为一个文件,减少http请求压缩:把html、css、js的空格注释去掉,减少请求大小图片优化减少请求大小、数量,优化加载速度jpg: 压缩率高,大部分不需要透明图片的场景png : 支持透明,大部分需要透明图片的场景webp:压缩成度更好,安卓全部,ios有兼容问题svg矢量图:代码内嵌,相对较小

2020-07-16 22:14:22 244

原创 Javascript 性能优化

加载放到body底部, 这样不会阻塞页面渲染<body><script></script></body>数据读取访问局部变量 比 全局要快 //badlet data = {};(function(){ alert(data);}())// goodslet data = {};(function(){ let l_data = data; alert( l_data);}())频繁访问对象属性,请保存到

2020-07-16 22:12:28 209

原创 Javasript中各种状态下的this指向

据我所知的有5种:1.作为普通函数调用:this指向全局2.作为对象的方法调用:this指向当前对象3.作为构造器使用: this指向实例对象4.用call、apply调用时:this指向所指定的上下文5.在箭头函数中使用this时:this指向箭头函数开始定义的上下文##作为普通函数调用function test () { return this;}function test2 () { console.log(test());}let obj = { test: functi

2020-07-16 22:09:17 142

原创 Javascript 异步编程笔记

环境:chrome 80演习:用Promise async/await封装$.ajaxPromise第一次请求成功,接着请求第二次// 先引入jq <script src="https://cdn.bootcss.com/jquery/3.5.0/jquery.min.js"></script> let {log} = console;function request(url) { return new Promise((resolve,reject)=>{

2020-07-14 21:38:07 111

原创 数据库设计过程

设计过程需求分析 > 逻辑设计 > 物理设计 > 维护优化需求分析一张表需要存什么信息。用户信息有 名称、手机号、身份证、年龄可以做唯一标识的字段: 手机号 或 身份证存储特点: 永久存储还是会删除与其他表的联系逻辑设计注意事项:更新异常:更新时应该更新指定的一条删除异常:删除时应该删除指定的一条数据冗余:数据重复出现设计范式第一范式:一张表应该是一张二维表,对应一个值bad名称手机号用户信息年龄用户名113226

2020-07-14 21:35:06 158

原创 window环境配置Mysql-8-windowx64.zip免安装版

1.从官网下载mysql-8-windowx64.zip mysql下载页面2.解压到合适的位置(E:\mysql) 这名字是我改过的3.配置环境变量,将E:\mysql\bin 添加到PATH中4.在mysql目录下(E:\mysql) 创建 my.ini文件,内容如下:[mysqld]# 设置3306端口port=3306# 设置mysql的安装目录basedir=E:\mysql# 设置mysql数据库的数据的存放目录datadir=E:\mysql\data# 允许最大连接数

2020-07-14 21:33:21 126

原创 SQL语句整理

显示// 显示所有数据库show databases;// 显示当前数据库所有的表show tables;// 描述表的结构describe tabeName;// 查看创建表的SQL语句SHOW CREATE TABLE students;// 支持的存储引擎SHOW ENGINES// 查询表的存储引擎show table status from 数据库名 where name='表名'##创建表和数据库// 数据库create database database_nam

2020-07-14 21:13:31 188

原创 Linux 下MySql日志查看

查看所有日志状态 mysql> show global variables like '%log%';设置某个日志开启 mysql> set global general_log = on;##日志文件路径字段通用日志 general_log_file sql语句执行的记录mysql> set global general_log = on; // 开启shell> /var/lib/mysql/localhost.log错误日志 log_error慢查询日志s

2020-07-14 21:09:04 573

原创 centos7 安装 MySql8.bundle.tar

安装如果之前有安装过mysql8,先卸载yum remove mysql mysql-server mysql-libs mysql-server -y;rm -rf /var/log/mysqld.log;find / -name mysql; // 找到有关系统的mysql,有rm -rf 删除,如下rm -rf /etc/logrotate.d/mysql ;rm -rf /etc/selinux/targeted/active/modules/100/mysql /etc/selinu

2020-07-14 21:07:04 243

原创 Mysql备份数据库

备份备份数据库// 备份数据库下的所有表,不包含创建数据库,导入前需要创建数据库$> mysqldump -u root -h host -p dbname1> backdb.sql // 备份数据库,包含创建数据库$> mysqldump -u root -h localhost -p --databases test > backdb.sql// 备份全部数据库$> mysqldump -u root -h host -p --all-databases

2020-07-14 21:04:32 120

原创 Web前端错误监控

脚本运行时错误捕获window.onerror 监听全局错误发生,发生错误会阻止后续的脚本运行window.onerror = err => {}a console.log(1) // 不会运行try - catch 捕获try代码块里的错误,不会影响后续的代码运行try { a } catch (err) {}console.log(1) // 1资源加载错误Object.onerror 只能在创建时监听单个元素的error事件let script = docum

2020-07-14 21:02:01 284

原创 造成 Provisional headers are shown 的原因总结

跨域使用了json // 后端设置http头部, 允许跨域使用json数据格式 ctx.set("Content-Type", "application/json;charset=utf-8"); ctx.set('Access-Control-Allow-Origin','*') ctx.set("Access-Control-Allow-Headers", " Origin, X-Requested-With, Content-Type, Accept");后端设置了csp..

2020-07-14 21:01:48 3106 2

原创 Web移动端常见兼容问题

##通用-webkit-tap-highlight-color: rgba(0,0,0,0);触摸时颜色cssandroid:android4.4一下的不支持flexbox,需要用旧版flexbox; display: -webkit-box; /* display: flex; */-webkit-box-pack: center; /* justify-content: center; */-webkit-box-align: center; /* align-items: cent

2020-07-14 20:59:01 678

原创 移动端1px边框实现方案

css.border1px:after { content: ' '; box-sizing: border-box; display: block; position: absolute; top: 0; left: 0; width: 200%; height: 200%; transform: scale(.5); transform-origin: left top; pointer-events: none;}div { position: relat

2020-07-14 20:57:37 337

原创 Web信息安全9-任意文件包含漏洞防御

原理通过用户提供的文件路径,直接返回文件。如果用户提供的是数据库配置文件路径,也返回攻击演示启动DVWA, 进入File Inclusion点击file1.php, 页面内容发生变化,页面URL也发生变化http://127.0.0.1/dvwa/vulnerabilities/fi/?page=file1.php, 后端通过拿到?page=的路径返回文件内容,如果我们给定任意一个文件路径,非页面上指定的file1.php 、file2.php 、 file3.php呢地址栏输入http://1

2020-07-11 10:45:48 232

原创 Web信息安全8-文件上传漏洞防御

原理假如服务器环境是php,用户更新头像,却上传一个php文件,再去访问这个php文件路径,这个php文件就在服务器运行了。攻击者就可以获取服务器的信息、删除文件等等攻击演示启动DVWA, 进入File Upload新建一个文件1.php, 内容为 <?php phpinfo(); ?>将文件上传,拿到地址去访问刚刚上传的文件http://127.0.0.1/dvwa/hackable/uploads/1.php服务器的信息泄露了防御文件类型检测(前端、后端)权限控

2020-07-11 10:24:14 327

原创 Web信息安全7-SQL注入防御

原理我要查询用户名为one的用户// username = 'one'String username = request.getParameter("username");String sql = "select * from user where username=' "+username + " ' "; //select * from user where username = 'one'假如传过来的是1' or 1 != '1// username = " 1' or 1 != '1

2020-07-11 10:15:06 165

原创 Web安全-口令破解

口令破解是一种对应用认证系统的攻击手段,在web攻击中,一般会使用这种手段对账号登录系统进行破解。 其过程就是使用大量的认证信息在认证接口进行尝试登录,直到得到正确的结果。 为了提高效率,暴力破解一般会使用带有字典的工具来进行自动化操作

2020-07-11 10:04:20 1720

原创 Web信息安全5-点击劫持防御

原理攻击者网页中的iframe嵌套着目标网站b, 定位到最前面,并设置透明。防御X-Frame-Options: 设置http头,禁止内嵌。例子ctx.response.set("X-Frame-Options","sameorigin") 可以在相同域名页面的 frame 中展示...

2020-07-11 07:56:13 238

原创 Web信息安全4-Javascript Attacks防御

原理攻击者通过修改页面上的HTML以绕过某些检测。如果修改textarea 的 maxlength属性 就可以绕过最大字数限制攻击方式启动DVWA, 进入JavaScript在控制台运行md5(rot13('success')), 拿到这个 token替换这个在输入框输入success, 提交原理解析后端通过token值判断是否可以提交,而这个token我们可以通过开发者工具修改HTML中的表单,即可绕过。虽然这个token是通过看后端的代码才知道的,但道理大都这样,修改页面以绕过检测

2020-07-10 21:47:25 228

原创 Web安全-CSRF

Cross-site request forgery 简称为“CSRF”,中文名为跨站请求伪造。在CSRF的攻击场景中攻击者会伪造一个请求(这个请求一般是一个链接,用来触发目标网站的服务),然后欺骗目标用户进行点击,用户一旦点击了这个请求,整个攻击就完成了

2020-07-10 21:25:30 179

原创 Web安全-XSS

原理将没经过转义处理的数据显示在页面上,如果是脚本<script></script>,就会运行,从而达到攻击效果导致的后果用户的信息会被窃取。cookie信息,账号信息页面逻辑会被改。重定向到某个网站、修改页面内容攻击演示启动DVWA, 进入XSS (Reflected)在输入框输入<script>alert(1)</script>, 点击提交防御http 响应header 增加X-XSS-Protection字段,用来预防url的

2020-07-10 21:11:10 230

原创 Web信息安全1-渗透测试靶场搭建

系统:windows10下载DVWA下载phpStudy把DVWA解压到 phpStudy/www 下,重命名为dvwa打开dvwa/config/config.inc.php.dist, 修改数据库配置$_DVWA[ 'db_user' ] = 'root';$_DVWA[ 'db_password' ] = 'root';把config.inc.php.dist 重命名为 config.inc.php访问dvwa http://localhost/dvwa/login.p

2020-07-10 20:55:56 1723

原创 【解决问题方法论】缩小范围

摘要: 在一个工程中,程序中某个功能运行与预期结果不一样。导致这个问题的发生有很多因素,有时候很难定位是哪些因素导致这个问题的发生 。所以我们需要不断缩小范围,最终找出问题所在问题描述在Node服务器上调用接口压缩文件,压缩包下载下来是损坏状态,但在服务器上是正常的排查问题先看看压缩包本身是不是正常。我们打开服务器上的压缩包,发现是正常,也就是调用接口->客户机过程的问题看压缩文件与返回文件的三行代码 ctx.response.set('Content-Disposition',

2020-07-06 23:08:14 1122 1

原创 Centos7 安装配置

配置网络$_> vi /etc/sysconfig/network-scripts/ifcfg-eno数字最后一行 onboot = yes$_> reboot //重启$_> ping www.baidu.com // 测试网络连接, ctrl+c 停止$_> ip a // 查看ip地址在虚拟机配置,没有看到192.168…的ip,改下虚拟机软件的网络配置在菜单栏找到虚拟网络编辑器如果有VMnet0 删除如果有NAT模式的,重启centos,没有添加一个NA

2020-07-05 21:28:48 129

原创 Centos开启ftp服务

安装yum install vsftpd -y修改配置 vi /etc/vsftpd/vsftpd.conf# 禁用匿名用户anonymous_enable=NO# 禁止切换根目录chroot_local_user=YES# 启用写的权限allow_writeable_chroot=YES增加用户$_> useradd ftpuser$_> passwd ftpuser$_> useradd -d /home/wwwroot ftpuser // 访问目.

2020-07-05 21:28:10 195

原创 Linux 用户身份与文件权限

用户useradd [ 参数 ] 用户名 添加用户 sudo useradd -d /home/test -u 1001 -s /bin/bash nameusermod [选项] 用户名 更改用户信息 sudo usermod -L testuserdel [选项] 用户名 删除用户groupadd [选项] 群组名 创建用户组passwd [选项] [用户名] 修改密码、认证信息 修改密码: passwd username文件权限drwxr-xr-x 4 npz npz 4096 7

2020-07-05 21:27:36 201

原创 Linux 管道符、重定向与环境变量

输入输出错重定向输入重定向 wc < 1.txt 将1.txt里的文本传给 wc 命令输出重定向ls -l > ls.txt 将ls 的信息输出到 1.txt 文件,会覆盖原来的ls -l >> ls.txt 追加文本ls dir 2 > error.txt 将错误信息输出到 error.txt管道符命令A | 命名B 将命名A执行的结果 传给命名Bls | grep index 查找当前文件列表下的 indexecho "y" | rm -i 1.txt

2020-07-05 21:27:01 122

原创 Linux下的服务器上传与下载

上传scp 文件 用户名@服务器ip 服务器保存路径例如:scp bookmarks_2019_6_24.html root@192.168.0.103:/home下载scp 用户名@服务器ip 服务器文件路径 保存地址例如:scp root@192.168.0.103:/home/b.html ./ ...

2020-07-05 21:24:28 183

原创 Linux 常用命令

linux 命令搜索通配符* 任意多个或零个字符? 任意一个字符[abc] [ ]任意一个字符[!abc] 不在[]的字符[[:class:]] 字符类// 字符类[:alnum:] 匹配任意一个字母或数字[:alpha:] 匹配任意一个字母[:digit:] 匹配任意一个数字[:lower:] 匹配任意一个小写字母[:upper] 匹配任意一个大写字母// 用法shell> rm *.txt软件包管理Debian, Ubuntu:.deb查找资源库中的软

2020-07-05 21:22:59 129

原创 Node 跨域 Access to XMLHttpRequest at ‘url‘ from origin ‘null‘ has been blocked by CORS policy: Req...

如果跨域用到了put,patch方法,要在响应头设置// koaapp.use(async (ctx, next) => { ctx.set('Access-Control-Allow-Origin','*') ctx.set("Access-Control-Allow-Methods", "POST, GET, DELETE,PATCH,PUT"); ctx.response.status = 200 ; await next();});...

2020-06-30 21:05:55 696

原创 Node puppeteer 爬虫用法

puppeteer 中文文档开始// 设置国内源,否则下载puppeteer很慢shell> npm config set registry http://registry.npm.taobao.org shell> npm init -yshell> npm i puppeteer@3.1.0爬取豆瓣书籍列表豆瓣读书 在这个页面输入javascript,然后爬取列表案例特征:需要点击下一步才能获取数据/* 1. 进入豆瓣读书首页,在输入框输入javascript,点

2020-06-30 21:04:35 342

原创 Node WebSocket 聊天室

在线演示开始npm init -ynpm i ws代码app.jsws// 1. 客户端建立连接,先同步聊天记录// 2. 接收到客户端发来的消息,将新消息通知所有已建立连接的客户端const WebSocket = require('ws');const WebSocketServer = WebSocket.Server;let charList = []; // 保存所有的聊天记录const wss = new WebSocketServer({ port: 3000

2020-06-30 21:02:49 147

空空如也

空空如也

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

TA关注的人

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