Maven基础
Maven简介Maven的本质是一个项目管理工具,将项目开发和管理过程抽象成一个项目对象模型(POM)
蓝色区域是Maven的作用范围
作用
项目构建:提供标准的、跨平台的自动化项目构建方式
依赖管理:方便快捷的管理项目依赖的资源(jar包),避免资源间的版本冲突问题
统一开发结构:提供标准的、统一的项目结构
Maven下载
Maven属于绿色版软件,解压即安装
bin # 核心运行文件
m2.conf
mvn
mvn.cmd
mvnDebug
mvnDebug.cmd
mvnyjp
boot # 类加载器
plexus-classworlds.license
plexus-classworlds-2.7.0.jar
conf # 核心配置
logging
settings.xml
toolchains.xml
lib # 依赖的jar包
ext
jansi-native
*.license
*.jar
LICENSE
NOTICE
README.txt
★基础概念★仓库用于存储资源,包含各种jar包
分类:
本地仓库:自己电脑上存储资源的仓库,连接远 ...
SpringBoot
Spring BootSpring发展到今天已经形成了一种开发生态圈,Spring提供了若干个子项目,每个项目用于完成特定的功能
Spring全家桶的基础是 Spring Framerwork,由于其配置繁琐、入门难度大,推出 Spring Boot用来简化开发
SpringBootWeb快速入门需求:使用SpringBoot开发一个web应用,浏览器发起请求/hello后,给浏览器返回字符串 “Hello World ~”
步骤
创建Springboot工程,勾选web开发相关依赖
定义HelloController类,添加方法hello,并添加注解
12345678910111213package com.zishuq.controller;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;@RestControllerpublic class HelloController ...
搭建图床
图床简介图床一般是指存储图片的服务器,专门用来存放图片,同时允许把图片对外连接的网上空间。
使用github搭建图床github仓库权限一定要选择public
PicGo配置
在Github上面创建一个tokenSettings -> Developer Settings -> Personal access tokens -> Tokens -> generate new token -> Generate new token(classic)
Note填token名称
Expiration是设置token过期时间,我这里选No expiration
勾选repo选项
生成后将token保存好,token只会显示一次
在PicGo上面进行设置
仓库名称:用户名/仓库名 就是刚刚创建的仓库,这里我用的以前的仓库
分支名:main,固定即可
Token:粘贴刚刚生成的token
cdn.jsdelivr.net是一个cdn分站,加快访问速度
PicGo-Core不需要下载PicGo的app,写好配置文件ji’ke
路径:C: ...
Flask
模板基本语法在社交网站上,每个人都有一个主页,借助 Jinja2 就可以写出一个通用的模板:
123456<h1>{{ username }}的个人主页</h1>{% if bio %} <p>{{ bio }}</p> {# 这里的缩进只是为了可读性,不是必须的 #}{% else %} <p>自我介绍为空。</p>{% endif %} {# 大部分 Jinja 语句都需要声明关闭 #}
Jinja2 的语法和 Python 大致相同,你在后面会陆续接触到一些常见的用法。在模板里,你需要添加特定的定界符将 Jinja2 语句和变量标记出来,下面是三种常用的定界符:
{{ ... }} 用来标记变量。
{% ... %} 用来标记语句,比如 if 语句,fo ...
pandas办公表格处理
使用示例123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147# 基础用法import pandas as pdpd.read_csv(path) ts_code symbol name area industry list_date0 000001.SZ 1 平安银行 深圳 银行 199104031 000002.SZ ...
PHP反序列化
基础知识什么是反序列化漏洞当程序在进行反序列化时,会自动调用一些函数,例如__wakeup(),__destruct()等函数,但是如果传入函数的参数可以被用户控制的话,用户可以输入一些恶意代码到函数中,从而导致反序列化漏洞。
PHP魔术方法1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374751、__get、__set这两个方法是为在类和他们的父类中没有声明的属性而设计的__get( $property ) 当调用一个未定义的属性时访问此方法__set( $property, $value ) 给一个未定义的属性赋值时调用这里的没有声明包括访问控制为proteced,private的属性(即没有权限访问的属性)2、__isset、__unset__isset( $property ) 当在一个未定义的属性上调用isset()函数时调用此方法__unset( $ ...
SSRF漏洞
基础知识SSRF含义SSRF(Server-Side Request Forgery: 服务器端请求伪造 )是一种由攻击者构造形成由服务端发起请求的一个安全漏洞。SSRF的攻击目标一般是从外网无法访问的内部服务器。
即以下三点:
服务器端请求伪造(SSRF)是指攻击者能够从易受攻击的Web应用程序发送精心设计的请求的对其他网站进行攻击。(利用一个可发起网络请求的服务当作跳板来攻击其他服务)
攻击者能够利用目标帮助攻击者访问其他想要攻击的目标
攻击者要求服务器为他访问URL
SSRF作用
隐藏自己
进行内网渗透 主流防御 -> 外网防护强,内网防护弱
更好地对存在SSRF漏洞进行攻击 mysql默认不允许外部访问,但对于本地没有防护
扫描内部网络
向内部任意主机的任意端口发送精心构造的数据包(payload)
DOS(请求大文件,始终保持连接Keep-Alive Always)
暴力穷举(users、files等)
SSRF条件
web服务器存在SSRF漏洞
web服务器有访问本地或远程服务器的权限
SSRF存在的位置一般是web服务器提供了从其他服务器获取数据的功能,可 ...
文件上传
基础知识1、一句话木马参考文章:(18条消息) Web安全-一句话木马_Tr0e的博客-CSDN博客_yijuhuamuma
1<?php @eval($_POST['cmd']);?>
2、绕过方式2.1、客户端检测绕过按F12打开网络检测,提交一个非法格式的文件,若没有请求数据发送出去,直接判断出是非法格式则是客户端检测。
如图,只在客户端前端对文件格式是否为满足条件的png、bmp、gif、jpg进行了校验。
1234567891011121314151617<script type="text/javascript">function checkFile(){ var flag = false; var str = document.getElementById("file").value; str = str.substring(str.lastIndexOf('.') + 1); var arr = new Array('png', ...
File Browser 网盘搭建
参考文章:
VPS 上搭建简易的私有云盘 - CaptainChen
步骤1. 下载压缩包放到/home/code目录下,解压
1tar -zxf 压缩包
2. 部署1filebrowser -a 0.0.0.0 -p 7070 -r /home/code/files -d /home/code/filebrowser.db
这样就指定 /home/code/files 目录为网盘根目录,在 7070 端口下启动了一个私有网盘。-d 命令指定了存放用户信息的数据库的目录,第一次运行会自动生成。访问 http://your_vps_ip:8007 就可以登入刚刚搭建好的网盘,默认用户名和密码均为 admin,登入后在设置里面可以更改。
3. 后台运行在/etc/systemd/system下创建filebrowser.service文件,内容如下:
123456789101112[Unit]Description=filebrowser serviceAfter=network.target[Service]Type=simpleRe ...
JavaScript
基本语法入门数据类型1、数值型(number)
js不区分浮点数和整数
123456123 // 整数123.1 // 浮点数1.123e3 // 科学计数法-99 // 负数NaN // 非数 not a numberInfinity // 无限大
2、字符串
12'abc'"abc"
3、布尔型
12truefalse
4、逻辑运算
123&&||!
5、比较运算符
123=== // 等于(弱类型)=== // 绝对等于(强类型)
6、null 和 undefined
12null // 空undefined // 未定义
7、数组
12var arr = [1, 2, 3, "hello", null, true]// 数组内什么类型都可以放在一起,数组越界返回undefined
8、对象
123456789var person = { name: "zishuQ", age: 20, tags: ['js', 'java& ...