Amp

使用WinHttpRequest伪造referer

梦想的初衷 提交于 2020-08-11 15:42:23
winhttprequest,使用WinHttpRequest伪造referer,winhttprequest示例代码,winhttprequest入门教程,winhttprequest高级使用教程 从msdn得知, WinHttp.WinHttpRequest.5.1 是 msxml 4.0 的底层对象,也就是说 XMLHTTP/ServerXMLHTTP 也是在它的基础上封装而来。用 WinHttpRequest 发的请求,连 Fiddler 也监测不到,看来确实是比较底层的东西。 既然可以用它来伪造所有 http 请求的 header,那 Cookies、Sessionid 自然也就可以得到并传递了。下面是实战代码,用命令行登录博客园,共三次请求,第一次请求获取表单的 VIEWSTATE 和 EVENTVALIDATION,第二次带账户登录,第三次带Cookie访问其首页: //封装成远程访问的函数 function RemoteCall(method, url, param, header){ var obj = new ActiveXObject("WinHttp.WinHttpRequest.5.1"); obj.Open(method||"GET", url, false); obj.Option(4) = 13056; obj.Option(6) = false;

Hacker News 简讯 2020-07-10

别等时光非礼了梦想. 提交于 2020-08-11 14:57:08
更新时间: 2020-07-10 01:15 US Supreme Court deems half of Oklahoma a Native American Reservation - (reuters.com) 美国最高法院认为俄克拉荷马州的一半是印第安人保留地 得分:131 | 评论:70 Slate Star Codex and Silicon Valley’s War Against the Media - (newyorker.com) 石板星法典和硅谷对媒体的战争 得分:137 | 评论:78 How to track and display profile views on GitHub - (rushter.com) 如何在GitHub上跟踪和显示概要视图 得分:131 | 评论:79 XMEMS Announces World's First Monolithic MEMS Speaker - (anandtech.com) XMEMS宣布推出全球首款单片微机电扬声器 得分:60 | 评论:28 Dates and Times in JavaScript – A New API for Dates from TC39 - (igalia.com) JavaScript中的日期和时间——一个新的TC39日期应用编程接口 得分:21 | 评论:7 The rise

leetcode226(翻转二叉树)--C语言实现

吃可爱长大的小学妹 提交于 2020-08-11 13:49:59
求: 翻转一棵二叉树。 示例: 输入: 4 / \ 2 7 / \ / \ 1 3 6 9 输出: 4 / \ 7 2 / \ / \ 9 6 3 1 备注: 这个问题是受到 Max Howell 的 原问题 启发的 : 谷歌:我们90%的工程师使用您编写的软件(Homebrew),但是您却无法在面试时在白板上写出翻转二叉树这道题,这太糟糕了。 解: 思路:从根节点开始,分别交换树中每一个节点的左右节点的指针,递归调用完成后得到的树就是原树的镜像翻转树。分别判断根节点为空、根节点不空但左右节点均为空、根节点不空但左右节点有一个为空、根节点不空但左右节点均不为空的情况下,应该怎么操作指针即可。最后返回根节点的指针。 /** * Definition for a binary tree node. * struct TreeNode { * int val; * struct TreeNode *left; * struct TreeNode *right; * }; */ void Mirror( struct TreeNode* root){ if (root==NULL || (root->left==NULL && root->right==NULL)) return ; if (root->left==NULL || root->right==NULL){ if (root-

MySQL常用函数,你真得看看!

 ̄綄美尐妖づ 提交于 2020-08-11 12:53:06
概念: 相当于java中的方法,将一组逻辑语句封装在方法体中,对外暴露方法名 隐藏了实现细节 提高代码的可重用性 使用: select 函数名(实参列表)【from 表】 【】中内容可省略 正文: 字符函数: length:获取字节个数(utf-8 一个汉字为3个字节,gbk为2个字节) SELECT LENGTH ( 'cbuc' ) # 输出 4 SELECT LENGTH ( '蔡不菜cbuc' ) # 输出13 concat:拼接字符串 SELECT CONCAT ( 'C' , '_' , 'BUC' ) # 输出 C_BUC upper:将字母变成大写 SELECT UPPER ( 'cbuc' ) # 输出 CBUC lower:将字母变成小写 SELECT LOWER ( 'CBUC' ) # 输出 cbuc substr / substring:裁剪字符串 该方法进行了重构, substr(str,pos) # str:要裁剪的字符串 , pos:要裁剪的长度 substr(str,pos,len) # str:要裁剪的字符串 , pos/len:从哪个位置开始裁剪几位 # substring同理 instr:返回子串第一次出现的索引,如果没有则返回0 SELECT INSTR ( '蔡不菜' , '蔡' ) # 输出 1 (mysql是从1开始算位数) trim

CentOS8安装最新版本Chromium浏览器

我们两清 提交于 2020-08-11 12:38:35
Chromium浏览器是Chrome浏览器的开源版本,本文介绍如何使用snap工具安装最新版本的Chromium浏览器。 环境 Centos 8 安装snapd工具 使用snap安装chromium,可以安装最新版本的,下面是安装 命令 : [bob@localhost ~]$ sudo dnf install -y snapd # 使snapd开机启动,并马上启动服务。 [bob@localhost ~]$ sudo systemctl enable snapd --now 安装chromium 接下来就是用snap安装chromium-83.0.4103.61吧。 [bob@localhost ~]$ sudo snap install chromium 打开chromium,查看一下版本。 如何安装Chromium 测试版? 使用snap工具可以安装测试版本的Chromium-84.0.4147.21浏览器。我们先把之前安装的卸载掉: [bob@localhost ~]$ sudo snap remove chromium chromium removed 接下来安装Beta版本的Chromium: [bob@localhost ~]$ sudo snap install chromium --beta 打开浏览器看一下吧: 可以在 命令 行输入命令打开chromium浏览器

php7.2安装redis扩展

不打扰是莪最后的温柔 提交于 2020-08-11 12:24:49
centos7 以上版本php7.2安装redis扩展,使php能和redis进行通信。 一、使用oneinstack安装php7.2 二、下载php7的phpredis扩展库 php官网下载redis扩展页面:http://pecl.php.net/package/redis wget http://pecl.php.net/get/redis-4.0.2.tgz 三、解压phpredis扩展库 tar -xzvf redis-4.0.2.tgz cd redis-4.0.2 四、通过phpize生成编译configure配置文件 [root@zixuephp redis-4.0.2]# /mnt/php7/bin/phpize Configuring for: PHP Api Version: 20170718 Zend Module Api No: 20170718 Zend Extension Api No: 320170718 五、进行编译前的配置 ./configure --with-php-config=/mnt/php7/bin/php-config 六、编译和安装 make && make install 七、修改配置文件 在php.ini增加扩展extension=redis.so vim php.ini #文件尾增加下面代码 extension=redis

CKEditor 5 + SpringBoot实战(四):SpringBoot 实现文件上传

与世无争的帅哥 提交于 2020-08-11 11:07:55
在本系列的文章中,我将介绍如何在Spring Boot Application中使用CKEditor编辑器。介绍的内容包括基本环境的搭建,文件上传,SpringData JPA数据持久化,CKEditor5的安装,CKEditor图片上传,CKEditor插入视频,获取/设置CKEditor内容等。 在本章节中,主要介绍的内容是在SpringBoot中实现图片上传功能,其中包括上传路径的设置,图片路径映射和上传业务代码的编写。 文件上传 所谓的文件上传就是将客户端的资源通过网络传输到服务端,其本质就是IO流操作。服务端通过IO流读取客户端数据,然后对数据进行解析,获取目标文件数据后,将数据存储到服务端磁盘中。 引入依赖 要实现文件上传,首先需要将所需要的依赖包导入到项目中。这里我们仅导入commons-fileupload和commons-io依赖包。通常,commons-fileupload依赖需要和commons-io一起搭配使用,其中封装了大量的用于操作文件上传的功能,可以帮助我们简化文件上传代码的编写。打开pom.xml配置文件,并加入如下的配置: < dependency > < groupId > commons-fileupload </ groupId > < artifactId > commons-fileupload </ artifactId > <

谈谈MySQL InnoDB存储引擎事务的ACID特性

寵の児 提交于 2020-08-11 10:40:19
1、前言 相信工作了一段时间的同学肯定都用过事务,也都听说过事务的4大特性ACID。ACID表示原子性、一致性、隔离性和持久性。一个很好的事务处理系统,必须具备这些标准特性: 原子性(Atomicity): 一个事务必须被视为一个不可分割的最小工作单元,整个事务中的所有操作要么全部提交成功,要么全部失败回滚。 一致性(consistency): 数据库总是从一个一致性的状态转换到另一个一致性的状态。(其实原子性和隔离性间接的保证了一致性) 隔离性(isolation): 通常来说,一个事务所做的修改在最终提交以前,对其他事务是不可见的。 持久性(durability): 一旦事务提交,则其所做的修改就会永久保存到数据库中。 而我们最常说的隔离性其实有对应的隔离级别,MySQL规定的隔离级别有4种,分别是: READ UNCOMMITTED(读未提交): 在此级别里,事务的修改,即使没有提交,对其他事务也都是可见的。事务可以读取未提交的数据,也就是会产生 脏读 ,在实际应用中一般很少使用。 READ COMMITTED(读已提交): 大多数数据库系统的默认隔离级别都是它,但是MySQL不是。它能够避免脏读问题,但是在一个事务里对同一条数据的多次查询可能会得到不同的结果,也就是会产生 不可重复读 问题。 REPEATABLE READ(可重复读): 该隔离级别是MySQL默认的隔离级别

【华为云技术分享】STM32L476移植华为LiteOS系列教程------背景知识 1

梦想的初衷 提交于 2020-08-11 10:30:43
一、这篇文章想向大家说明一个问题,我们开发单片机的本质是什么? 在最早的开发中,我们没有Keil、IAR等等一系列好用的单片机集成开发环境,注意这里的“集成”,是指将多个软件其中有 ①编辑器:记事本、NotePad++、vim(Linux中的)这些都是编辑器,可以给我提供关键词高亮、代码补全等等操作。 ②编译器:gcc工具链,我们用的是arm-none-eabi-gcc工具链,注意这里有个“链”,链子???将一系列的工具串在了一块,可以分别使用也可以单独 使用,我们在Linux下输入了gcc -o hello hello.c,就生成了一个hello可执行文件./hello就打印一句hello world!给我们,或者这样说,我们在Keil中编写好了一个输出hello world!的程序,点下“编译”再点下“下载”,单片机的串口就会输出hello world!。 但是大家有没有思考过进行了这么一步,编译器到底做了什么? 相信大家已经知道了最终给机器运行的是0和1组成的二进制文件,但是我们C语言是如何转变为二进制文件的呢? 其中一个hello.c文件经历了“预处理”、“编译”、“汇编”、“链接”、生成hex/bin等可执行文件,其中每一步都是一个不同的软件来操作的。 这些软件都被集成在了工具链之中,这里就不继续说下去了,如果大家感兴趣,可以给我留言,后面给大家详细科普。 ③下载器

@RequestMapping, consumes 提交简单有意思的测试

时间秒杀一切 提交于 2020-08-11 09:40:21
getParm @GetMapping ( "getParm" ) public Result getParm(String id){ System. out .println(); return ResultFactory. success (id); } 等同于 == bodyParm @PostMapping ( "bodyParm" ) public Result bodyParm( @RequestBody String id){ System. out .println(id); return ResultFactory. success (id); } bodyParm2 @PostMapping (path = "bodyParm2" ,consumes = MediaType. APPLICATION_JSON_VALUE ) public Result bodyParm2( @RequestBody String id){ System. out .println(id); return ResultFactory. success (id); } 总结 1、form-data: 就是http请求中的 multipart/form-data ,它会将表单的数据处理为一条消息,以标签为单元,用分隔符分开。既可以上传键值对,也可以上传文件。当上传的字段是文件时