- 博客(53)
- 收藏
- 关注
原创 【无标题】
我们可以建立多个服务器,组成一个服务器集群,当用户访问网站时,先访问中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此以来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,既分担了服务器压力,有避免了服务器崩溃的情况。当一台服务器单位时间访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就容会崩掉。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。检查一下nginx的状态,代码如下。
2023-08-23 14:10:26
149
原创 【无标题】
Docker 是一个开源的应用容器引擎,基于 Go 语言 并遵从 Apache2.0 协议开源,可以让开发者打包他们的应用以及依赖包到一个轻量级、可移植的容器中,然后发布到任何流行的 Linux 机器上,也可以实现虚拟化。二、安装Docker1、设置下载Docker的镜像源2、安装Docker3、测试Docker是否安装成功3.1、启动Docker服务3.2、测试helloword三、镜像加速配置1、修改docker服务配置2、找到参数:ExecStart=/usr/bin/dockerd。
2023-08-16 15:03:17
155
原创 【无标题】
在HTML中,某些字符具有特殊含义,比如用于标记标签的尖括号 “<” 和 “>”,用于表示空格的连续空格字符,以及用于表示版权符号、商标符号等特殊符号。因此,要想打开一个文本文件,就必须知道它的编码方式,否则用错误的编码方式解读,就会出现乱码。这就是 Unicode,就像它的名字都表示的,这是一种所有符号的编码。不同的国家有不同的字母,因此,哪怕它们都使用256个符号的编码方式,代表的字母却不一样。但是不管怎样,所有这些编码方式中,0–127表示的符号是一样的,不一样的只是128–255的这一段。
2023-08-03 22:24:19
373
原创 【无标题】
端口”就是一个整数,可以简单理解成,访问者告诉服务器,想要访问哪一个网站。HTTP 协议的默认端口是80,如果省略了这个参数,服务器就会返回80端口的网站。用户只要点击,就可以从一个 URL 跳转到另一个 URL,前往不同的网站。URL 是“统一资源定位符”(Uniform Resource Locator)的首字母缩写,中文译为“网址”,表示各种资源的互联网地址。它没有语义,如果网页需要一个块级元素容器,又没有其他合适的标签,就可以使用这个标签。标签,一个文本输入框,一个提交按钮。
2023-08-03 22:16:23
155
原创 【无标题】
Object(“对象“)可视作键值对,“键”是字符串,“值”可以是任何内容(类似于其它语言中的 “map” 或 “dictionary”)。如果是,则将其退回。那么,在一个应用中,如果攻击者控制并修改了一个对象的原型,那么将可以影响所有和这个对象来自同一个类、父祖类的对象。.bar = 2,而foo是一个Object类的实例,所以实际上是修改了Object这个类,给这个类增加了一个属性bar,值为2。后来,又用Object类创建了一个zoo对象let zoo = {},zoo对象自然也有一个bar属性了。
2023-08-03 20:48:31
193
原创 【无标题】
当用户输入对应的数字选择水果的时候,告诉他选择的水果是什么,并给水果单词加上一种颜色(随意),要求用case语句实现。2.if嵌套:输入两个整数比较大小。
2023-07-18 21:25:55
278
原创 【无标题】
5.更改/var/named/named.openlab.com文件和/etc/resolv.conf文件。4.更改/var/named/named.openlab.com文件和/etc/resolv.conf文件。3.更改配置文件/etc/name.conf。2.安装bind软件包。4.在配置文件里编辑。
2023-07-16 19:43:56
319
原创 【无标题】
(1)学生信息网站只有song和tian两人可以访问,其他用户不能访问。 2.给该公司创建三个子界面分别显示学生信息,教学资料和缴费网站,基于。可以访问网站内容为 welcome to openlab! (2)访问缴费网站实现数据加密基于https访问。自定义一个openlab.conf文件。请给openlab搭建web网站。8.编辑index.html文件。5.根据子配置文件添加用户。6.根据子配置文件创建目录。9.编辑hosts文件。
2023-07-14 00:17:44
108
原创 【无标题】
而crond则是一个更加复杂的任务调度程序,可以让用户在指定的时间运行周期性任务,如每天、每周、每月等。3.指定在每天凌晨4:00将该时间点之前的系统日志信息备份到个目录下(/var/log/messages ),备份后日志文件名显示格式logfileYY-MM-DD HH-MM。3.指定在每天凌晨4:00将该时间点之前的系统日志信息备份到个目录下(/var/log/messages ),备份后日志文件名显示格式logfileYY-MM-DD HH-MM。1.atd和crond两个任务管理程序的区别。
2023-07-09 12:56:10
146
原创 【无标题】
3、使用curl命令访问第二题的web服务,看能否正常访问,如果能正常访问,则返回web server is running;如果不能正常访问,返回12状态码。如果不能正常访问,返回12状态码。2、判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。二、 判断web服务是否运行(1、查看进程的方式判断该程序是否运行,2、通过查看端口的方式判断该程序是否运行),如果没有运行,则启动该服务并配置防火墙规则。
2023-04-23 12:12:14
74
原创 【无标题】
runc是一个底层服务工具,runC 管理容器的创建,运行,销毁等,docker部分版本服务运行时底层其实在运行着runc服务,攻击者可以通过特定的容器镜像或者exec操作重写宿主机上的runc 二进制文件,并在宿主机上以root身份执行命令。是一个linux下的进程,通过NameSpace 等命令实现内核级别环境隔离(文件、网络、资源),相比虚拟机而言,Docker 的隔离性要弱不少 ,导致可以通过很多方法来进行docker逃逸。3、新建一个目录,将/dev/vda1挂载至新建的目录。
2023-02-23 01:19:40
244
原创 【无标题】
比较常见的一个场景就是,黑客写下一篇包含有恶意JavaScript代码的博客文章,文章发表后,所有访问该博客文章的用户,都会在他们的浏览器中执行这段恶意的JavaScript代码。XSS攻击全称跨站脚本攻击(Cross Site Scripting),但为不和层叠样式表(Cascading Style Sheets, CSS)的缩写混淆,故将跨站脚本攻击缩写为XSS,通常指黑客通过“HTML注入”篡改了网页,插入了恶意的脚本,从而在用户浏览网页时,控制用户浏览器的一种攻击。onclick: 点击触发 (
2023-02-23 01:12:43
160
原创 【无标题】
这样客户端在发送请求的时候,利用DNS域名解析,只要向解析到的IP地址(服务器地址)发送请求,然后服务器将自身唯一的证书返回回来,交给客户端验证,验证通过,则继续进行后续通信。SNI(Server Name Indication)定义在RFC 4366,是一项用于改善SSL/TLS的技术,在SSLv3/TLSv1中被启用。它允许客户端在发起SSL握手请求时(具体说来,是客户端发出SSL请求中的ClientHello阶段),就提交请求的Host信息,使得服务器能够切换到正确的域并返回相应的证书。
2023-02-23 01:04:25
122
原创 【无标题】
Mail Exchange,就是可以将某个域名下的邮件服务器指向自己的Mail Server,如taobao.com域名的A记录IP地址是115.238.25.xxx,如果将MX记录设置为115.238.25.xxx,即[email protected]的邮件路由,DNS会将邮件发送到115.238.25.xxx所在的服务器,而正常通过Web请求的话仍然解析到A记录的IP地址。私钥加密,公钥解密,这个叫签名,CA 机构用私钥加密服务端的公钥信息生成签名,就是这个过程,其目的是为了防止篡改。通常,这只是暂时状态。
2023-02-23 00:54:27
118
原创 【无标题】
我们可以建立多个服务器,组成一个服务器集群,当用户访问网站时,先访问中间服务器,再让这个中间服务器在服务器集群中选择一个压力较小的服务器,然后将该访问请求引入该服务器。如此以来,用户的每次访问,都会保证服务器集群中的每个服务器压力趋于平衡,既分担了服务器压力,有避免了服务器崩溃的情况。当一台服务器单位时间访问量越大时,服务器压力就越大,大到超过自身承受能力时,服务器就容会崩掉。为了避免服务器崩溃,让用户有更好的体验,我们通过负载均衡的方式来分担服务器压力。检查一下nginx的状态,代码如下。
2023-02-23 00:43:49
116
原创 【无标题】
LNMP架构的话,肯定就是linux、nginx、mysql、php四大组件。在后面的复现中我们还会用到https的一部分知识,故这里的nginx就需要使用虚拟主机并且配置https证书,且具有php解析功能。记得修改本机的host文件:C:\Windows\System32\drivers\etc。在开始之前我们浅浅分析一下数据库的大致结构,并插入flag。1.2 代码部署+数据库配置。1.1 基础nginx配置。
2023-02-06 15:00:43
70
原创 【无标题】
master进程使用的是root权限,而这里的worker进程则使用的是nginx权限。在单人使用服务器时是完全ok的,但是一旦涉及到多个用户管理同一台设备的nginx就会出现权限问题,==一方面要想完全控制nginx就需要root权限,权限分配敏感,另一方面,nginx如果由于自己的安全问题被攻破,则会危及到整台服务器。我们需要为nginx配置一个单独的用户以及用户组,所有在组内的成员均可以运行管理nginx,并且用户权限还得足够的大,可以使得nginx降权后的服务可以运行在80端口之上。
2023-02-06 14:51:24
81
原创 【无标题】
端口复用是不同的应用程序使用相同的端口进行通讯,在内网渗透中,服务器仅允许指定的端口开放,利用端口复用可以把例如3389端口转发到80端口上进行外部连接。目的:服务器一般部署在内网,仅有web服务用于被访问,我们将其他的服务通过端口复用绑定在80端口上,相当于给自己留下了一个后门。4、创建关闭开关,如果接收到一个长为 1140 的 ICMP 包,则将来源 IP 从 letmein 列表中去掉。3、创建开启开关,如果接收到长1139的ICMP包,则将来源ip添加到letmein的列表中。
2023-02-06 14:38:24
86
原创 【无标题】
使用基于域名的虚拟主机配置是比较流行的方式,可以在同一个IP上配置多个域名并且都通过80端口访问。2 192.168.2.155对应的域名如下,配置主机的host文件便于测试。3 建立虚拟主机存放网页的根目录,并创建首页文件index.html。4 修改nginx.conf,将虚拟主机配置文件包含进主文件。# 配置文件结尾的最后一个“}”之前加入以下语句,如下所示。# 在http段中找到以下内容并删除每行前面的“#”5 编辑每个域名的配置文件(每个虚拟主机的配置文件)
2023-02-02 11:33:37
90
原创 【无标题】
比如在一个网页里面插入一个超链接,链接到其他的网页,那么当点击这个超链接从而链接到另外一个页面的时候,相当于浏览器向web服务器发送了一个 http请求,对于另外一个页面而言,这个referer就是上一个页面的URL,而对于从地址栏里面直接输入URL或者是刷新网页的方式,则referer = null,通过设置这个referer可以防止盗链的问题。盗链是指在自己的页面上展示一些并不在自己服务器上的一些内容, 获取别人的资源地址,绕过别人的资源展示页面,直接在自己的页面上向最终用户提供此内容。
2023-02-02 11:21:56
131
原创 【无标题】
awk是一个强大的文本分析工具,相对于grep的查找,sed的编辑,awk在其对数据分析并生成报告时,显得尤为强大。pattern语句块中的通用命令是最重要的部分,它也是可选的。awk读取的每一行都会运行该语句块。$1就是IP,count[i]++是将IP作为一个数组的下标,并且使得统计这个IP所对应的数组元素自增1.END后面的语句是打印结果,只执行一次。BEGIN语句块在awk開始从输入流中读取行之前被运行,这是一个可选的语句块,比方变量初始化、打印输出表格的表头等语句通常能够写在BEGIN语句块中。
2023-02-02 11:06:41
55
原创 【无标题】
为什么会这样,因为Http是无状态的,我们使用session维护状态,那假设前两件商品的操作是在Server1上完成的,而第三件商品是在Server2上完成的,那么这种糟糕的情况就出现了,因为Server2第一次接到这个session。我们当然希望将用户的访问均衡的分配到这两天服务器上,那样对我们的系统是最有利的,这就是负载均衡最大的意义。假设把你公司的网看成是内网,那么你从公司里面的一台电脑上访问你家里的电脑上的服务,那就的通过正向代理,而你从你家电脑访问公司的这台电脑,就要通过反向代理。
2023-02-02 10:59:23
80
原创 【无标题】
但es6的箭头函数中没有 this 绑定,必须通过查找作用域链来决定其值,如果箭头函数被非箭头函数包含,则 this 绑定的是最近一层非箭头函数的 this,否则,this 为 undefined。call()方法与 apply()方法返回的结果是完全相同的,至于是使用 apply()还是 call(),完全取决于你采取哪种给函数传递参数的方式最方便。call、apply、bind 被称之为 this 的强绑定,用来改变函数执行时的this指向,目前所有关于它们的运用,都是基于这一点来进行的。
2023-02-02 10:25:41
46
原创 【无标题】
我们可以利用location来绕过这一限制, location会将等号右边的所有值变成字符串变量,而变量在js中可以编码,相应的"alert()“替换为JavaScript的一个伪协议"javascript:alert()”,于是。我们需要让转码后的数据进入函数时保持在%28%29的状态,而%的url编码是%25,因此我们可以这样构建。UrlEncode编码规则:将需要转码的字符的ASCII码值转为16进制,然后从右到左,取4位(不足4位直接处理),每2位做一位,前面加上%,编码成%XY格式。
2023-02-02 10:15:31
107
原创 【无标题】
学生表:Student(Sno,Sname,Ssex,Sage, sdept)学号,姓名,性别,年龄,所在系 sno为主键课程表:Course(Cno,Cname,)课程号,课程名Cno为主键。1.用SQL语句创建学生表student,定义主键,姓名不能重名,性别只能输入男或女,所在系的默认值是“计算机”学生选课表:sC(Sno,Cno,Score)学号,课程号,成绩Sno,Cno为主键。4.创建一视图 stu_info,查询全体学生的姓名,性别,课程名,成绩。
2022-10-24 16:48:43
255
原创 【无标题】
将外键删除,否则无法删除此表#3、将表employees的mobile字段修改到officeCode字段后面。4、将表emplouees的birth字段改名为employee_birth。将表employees的mobile字段修改到officeCode字段后面。将表emplouees的birth字段改名为employee_birth。9、将表employees名称改为employess_info。5、修改sex字段,数据类型为CHAR(1),非空约束。2、查看该库下几个表以及查看两张表结构。
2022-10-24 12:20:16
448
原创 【无标题】
VALUES (102, 1005, ‘2014-4-1’, 4800.00, ‘党员’, ‘钱七’, ‘1992-12-30’);) VALUES (102, 1003, ‘2011-1-4’, 8500.00, ‘党员’, ‘王亮’, ‘1983-6-8’);) VALUES (102, 1006, ‘2017-5-5’, 4500.00, ‘党员’, ‘孙八’, ‘1996-9-2’);select max(工资) as ‘最高工资’,min(工资) as ‘最低工资’ from worker;
2022-10-24 12:06:38
71
原创 【无标题】
docker inspect --format=‘{{.NetworkSettings.IPAddress}}’ jdk1(容器的名称)测试: 宿主机的ip地址 端口:3307 密码:123456。docker images :列举本地仓库的所有镜像。docker restart 容器的id。docker start 容器的id。docker rm -f 容器的id。docker stop 容器的id。列举所有的容器(包括停止的)3 启动docker。7 效验配置是否成功。
2022-10-16 21:41:53
76
原创 【数据库发展史、mysql特性】
数据库是数据管理的产物。数据管理是数据库的核心任务,内容包括对数据的分类、组织、编码、储存、检索和维护。随着计算机硬件和软件的发展,数据库技术也不断地发展。从数据管理的角度看,数据库技术到目前共经历了人工管理阶段、文件系统阶段和数据库系统阶段。人工管理阶段是指计算机诞生的初期(即20世纪50年代后期之前),这个时期的计算机主要用于科学计算。从硬件看,没有磁盘等直接存取的存储设备;从软件看,没有操作系统和管理数据的软件,数据处理方式是批处理。一、数据库技术的历史和发展。MSI数据库安装成功。
2022-10-16 21:30:45
272
原创 【无标题】
注意对象就是类的实例化,类完成实例化的操作就已经将类的方法绑定到对象上,对象调用方法会现在自己的名称空间去找,找不到会去类的名称空间去找,再找不到会抛异常。用组合的方式建立了类与组合的类之间的关系,它是一种‘有’的关系,当类之间有显著不同,并且较小的类是较大的类所需要的组件时,用组合比较好。在python中,用变量表示特征,用函数表示方法,因而类是变量与函数的结合体,对象是变量与方法(指向类的函数)的结合体。组合指的是在一个类中,部分数据属性是以其他类实例化的对象作为数据属性,称为类的组合。...
2022-07-31 17:24:51
59
原创 【无标题】
grep可用于shell脚本,因为grep通过返回一个状态值来说明搜索的状态,如果模板搜索成功,则返回0,如果搜索不成功,则返回1,如果搜索的文件不存在,则返回2。**贪婪匹配**正则表达式通常的行为是匹配尽可能多的字符,比如这个表达式a.*b,它将会匹配最长的以a开始,以b结束的字符串,如果用它来搜索aabab的话,它会匹配整个字符串aabab。-分组括号中的模式匹配到的内容会被正则表达式引擎记录于内部的变量中,这些变量的命名方式为\1,\2,\3,…...
2022-07-31 16:59:48
120
原创 【无标题】
当浏览者访问一个网页时,浏览者的浏览器会向网页所在服务器发出请求。当浏览器接收并显示网页前,此网页所在的服务器会返回一个包含 HTTP 状态码的信息头(server header)用以响应浏览器的请求。HTTP 状态码的英文为 HTTP Status Code。。下面是常见的 HTTP 状态码:200 - 请求成功301 - 资源(网页等)被永久转移到其它URL404 - 请求的资源(网页等)不存在500 - 内部服务器错误HTTP 状态码分类HTTP 状态码由三个十进制数字组成,第一个十进制数字
2022-07-11 11:02:07
106
原创 2021-11-11
作业1:晚上上节课的作业,将用户登录功能扩展实现登录后:1、发表文章(标题、内容、缩略内容、发表时间、修改时间、作者)2、修改自己的文章3、查看自己的所有文章4、通过标题,查询自己对应的文章另外也可以自行扩展(如宠物领养、结婚……)作业5:给定一个非负整数数组A,将该数组中的所有偶数都放在奇数元素之前推荐使用双指针:[0,8, 2, 1, 5, 4]作业6:将10进制数据转换为二进制,并且统计其中的0和1的数量2021年小米的面试题num = int(input(“请输入一个整数:
2021-11-24 17:50:01
86
原创 2021-11-11
1.如果两个素数之差为2,这样的两个素数就叫作"孪生数",找出100以内的所有"孪生数".ls = []#外层循环用于迭代0-100的数字,1不做判断for num in range(2,101):#定义一个布尔值,flag为真代表是素数flag = Truefor i in range(2,num):if num%i == 0:flag = Falsebreakif flag:#将所有的素数存储在容器中,这里的容器选择列表,因为可以通过下标来进行访问ls.append(num)e
2021-11-11 15:17:08
507
原创 2021-11-11
python的变量变量(Variable)可以看成一个小箱子,专门用来“盛装”程序中的数据。每个变量都拥有独一无二的名字,通过变量的名字就能找到变量中的数据。从底层看,程序中的数据最终都要放到内存(内存条)中,变量其实就是这块内存的名字。和变量相对应的是常量(Constant),它们都是用来“盛装”数据的小箱子,不同的是:变量保存的数据可以被多次修改,而常量一旦保存某个数据之后就不能修改了。在编程语言中,将数据放入变量的过程叫做赋值(Assignment)。Python 使用等号=作为赋值运算符,具
2021-11-11 14:26:36
453
原创 2021-11-11
throws:跟在方法声明后面,后面跟的是异常类名throw:用在方法体内,后面跟的是异常类对象名public static void method() throws ArithmeticException {// 跟在方法声明后面,后面跟的是异常类名int a=10;int b=0;if(b==0) {throw new ArithmeticException();用在方法体内,后面跟的是异常类对象名}else {System.out.println(a/b);}}}区别2:
2021-11-11 10:10:49
54
原创 2021-11-06
作业1:猜数字游戏(明天做)电脑随机一个范围内的数,用户输入数据判断,如果数大了,提供”数大了“作业2:猜拳游戏:石头、剪刀、布的游戏作业3作业5:输入数,判断这个数是否是质数(for)#include<stdio.h>int main(){int a,i;scanf("%d", &a);for (i = 2; i < a; i++){if (a % i != 0) break;elseprintf(“这个数不是素数(质数)\n”);ret
2021-11-06 16:20:06
103
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人