- 博客(129)
- 资源 (1)
- 收藏
- 关注
原创 安全的cookie和token机制
单独使用cookie或者token都是不够安全的。单独使用token做验证:不够安全,只要XSS就会被窃取token,黑客可以随意执行任何操作。单独使用cookie做验证:会遭遇csrf攻击正确的策略:使用cookie,并配置httpOnly,可以防止被js读取cookie。设置csrftoken,防止csrf攻击。设置正确的CSP白名单策略,防止XSS后读取csrftoken。这样,哪怕被XSS得手,还得继续执行csrf攻击才能执行特定的操作。...
2020-12-16 14:31:35 1421
原创 nginx upstream配置
upstream xxServer { #ip_hash; server ip1:port weight=1 max_fails=2 fail_timeout=30s ; server ip2:port weight=1 max_fails=2 fail_timeout=30s ; //nginx探活配置 check interval=3000 default_down=true rise=2 fall=5 timeout=1000 ty..
2020-12-15 10:54:20 537
原创 利用椭圆曲线进行加密通信
一个利用椭圆曲线进行加密通信的过程:1、用户A选定一条椭圆曲线Ep(a,b),并取椭圆曲线上一点,作为基点G。 2、用户A选择一个私有密钥(随机数)k,并通过某种快速算法生成公开密钥K=kG。 3、用户A将Ep(a,b)和点K,G传给用户B。 4、用户B接到信息后 ,将待传输的明文编码到Ep(a,b)上一点M,并产生一个随机整数r(r<n)。 5、用户B计算点P1=M+rK;P2=rG。 6、用户B将P1、P2传给用户A。 7、用户A接到信息后,计算P1-kP2,结果就是点M
2020-12-14 01:16:56 848 1
原创 javamelody与swagger注解冲突
在同一个类上加上下面两个注解会使swagger的注解失效@MonitoredWithSpring@Api(value = "hello", tags = "hello模块")public class HelloController {}
2020-12-08 22:42:05 221
原创 shirofilter会自动添加CORS访问
设置shiroFilter Map<String, Filter> filters = new HashMap<>(); filters.put("oauth2", new OAuth2Filter()); shiroFilter.setFilters(filters); Map<String, String> filterMap = new LinkedHashMap<>(); filte
2020-12-03 15:26:40 319
原创 直接用python脚本编写git hook
在windows下hook文件夹里直接新建一个pre-commit文件,用WSL看直接是可执行文件:#!/usr/bin/pythonprint("anything")这里要注意,windows版本运行git用的是mingw环境运行,mingw里内置的是/usr/bin/python而WSL用的是自己的环境,内置的是/usr/bin/python3,两个环境的可执行程序不一样。...
2020-11-28 22:26:37 688
原创 XML,DTD和XSD
XML构建模块:所有的 XML 文档(以及 HTML 文档)均由以下简单的构建模块构成:元素、属性、实体、PCDATA、CDATA<body src="computer.gif">body text in between</body>这是一个body元素,元素可拥有文本内容和属性 、属性总是以名称/值的形式成对出现,属性值要加引号,不过单引号和双引号均可使用 。XML中有以下五个预定义实体:当我们需要在文本中表示<时,就需要转义,不然会破坏XML结构。当文档被
2020-11-21 00:25:14 647
原创 一次接口设计的反思
最近在公司负责一个小程序项目的后台开发,设计接口的时候没想太多,现在回头来看问题太多当时的需求是要求用户第一次进入小程序时绑定账号,之后进入小程序的时候就不用绑定账号。如果绑定了账号就返回用户的一个列表。当时接口设计最大的败笔是将绑定账号的接口设计成直接返回用户列表,导致绑定账号的接口业务逻辑过于复杂。由于微信有一个通过用户临时登录凭证code去获取openid这个初始化的操作,还需要一个init方法,我选择在init方法中返回用户是否绑定的信息。事实上应该增加一个判断是否绑定的接口或者将判断绑定的逻
2020-11-20 21:37:19 181 2
原创 maven多仓库配置和仓库的搜索顺序
公司处于安全考虑要求项目只能用内网私服里的组件,但自己写点测试代码有时也要用到外网的组件,又希望下载组件先走内网私服,找不到再走阿里云,找不到最后走中央仓库。按以下配置settings.xml即可实现<settings> <proxies> <proxy> <id>optional</id> <active>true</active> <protocol>http</protocol&
2020-11-17 23:50:08 1094 1
原创 maven3.6.3运行
首先执行mvn install启动MavenCli.java提示缺少import org.apache.maven.cli.internal.extension.model.CoreExtension;import org.apache.maven.cli.internal.extension.model.io.xpp3.CoreExtensionsXpp3Reader;这两个文件modello是个代码生成器,会生成部分maven代码生成的Java源代码将位于target / generate
2020-07-31 17:57:40 263
原创 json格式
json的语法文件如下/** Taken from "The Definitive ANTLR 4 Reference" by Terence Parr */// Derived from http://json.orggrammar JSON;json : value ;obj : '{' pair (',' pair)* '}' | '{' '}' ...
2020-04-05 13:46:30 197
原创 重装系统后复用之前的Users文件夹
进入logo界面了说明引导没有问题1.重装系统后的用户名设置为和原先的用户名一致2.在PE环境下通过mklink /d实现软链接NTUSER.DAT和UsrClass.dat记载了注册表DesktopOK记录桌面图标位置...
2020-04-01 19:57:16 729
原创 令人迷惑的python语法之yield和闭包的组合
生成器和闭包在一起导致了出乎意料的行为def gen_func1(): def f(): return i i=0 yield f i=1 yield fdef gen_func2(): for i in range(2): def callback(): return i ...
2020-03-16 18:20:21 267 3
原创 chrome同步书签
国内连不上谷歌,自动同步并不好用,网上找了几个书签同步的插件也不好用(好像注册什么的也是需要翻墙,eversync),github的话我家移动网也上不去。。国内可以稳定访问的是onedrive,我也用过一段时间onedrive,还不错。所以就想办法将书签通过onedrive来同步方法:建立硬链接mklink /H onedrive/Bookmarks chrome/Bookmarks...
2020-03-03 02:22:39 818 1
原创 注册表和COM编程
在注册表中右键菜单的项目都包含在第一子项 HKEY_CALSS_ROOT 中。展开该项,第一个子项一般是 * ,这个统配符表示一切后缀的文件都通用。也就是说,这个子项中的一切右键菜单项,没有特别说明,会出现每一个文件的右键菜单中。再比如.html项,就是这个项分管以.html后缀结尾的文件的右键菜单。在一个子项的其内部,所有的右键菜单分为两部分存储shell:通过简单地编辑注册表的项值实现一...
2020-02-24 18:11:49 2737
原创 并发和并行——一个一直以来的误解
之前一直以为并发和并行是对立的,在单CPU上多任务(看似)同时进行是并发,而在多CPU上多个任务同时跑叫并行。所以当我看到Java并发编程这种说法的时候一直有个疑惑,因为Java的多线程明明可以使用多个线程却被人称呼为并发。事实上,并发和并行描述的并不是一个方面As you can see, concurrency is related to how an application handle...
2020-02-20 23:58:41 188
原创 websocket
服务器#!/usr/bin/env pythonimport asyncioimport websocketsasync def echo(websocket, path): await websocket.send("a") print("send a finish") await websocket.send("b") print("send b f...
2019-11-29 21:39:41 153 1
原创 字符集和编码
字符集与编码这两个概念常被混淆,两者是有差别的。字符集与字符集编码是两个不同层面的概念:(1)charset 是 character set 的简写,即字符集。(2)encoding 是 charset encoding 的简写,即字符集编码,简称编码。编码是依赖于字符集的,一个字符集可以有多个编码实现在早期,字符集与编码是一对一的,但随着时间的发展,出现了一对多的情形。Content...
2019-11-29 21:36:35 150
原创 多核CPU的多个核可以同时访问内存吗?
目前的x86/x64的多核/多处理器系统是SMP结构,共享主存,内存是共享设备,多个处理器/核心要访问内存,首先要获得内存总线的控制权,任何时刻只有一个处理器/核心能获得内存总线的控制权,所以单就内存来说,不会出现多个处理器/核心同时访问一个内存地址的情况。但是每个处理器/核心可能有自己的cache(非共享的),所以,如果某个内存地址的数据在多个处理器/核心的cache中都存在的话,是可能出现并发...
2019-11-14 20:58:34 3380 2
原创 JPA配置mysql连接
spring.datasource.url=jdbc:mysql://127.0.0.1:3306/test?useUnicode=true&characterEncoding=UTF-8spring.datasource.username=rootspring.datasource.password=rootspring.datasource.driver-class-name=c...
2019-11-14 16:48:19 346
原创 正确的二分查找
def bisearch(numbers, t): left = 0 right = len(numbers)-1 while left <= right: # 注意<=不能变 mid = (left+right)//2 # 可能存在溢出的问题 if t > numbers[mid]: left = ...
2019-10-23 19:45:51 166
原创 linux下php的部署
1。php-fpm的安装,php-mysqli的安装这两个阿里云下可以直接使用apt-get来完成7.0安装。更改php-fpm响应的配置2。配置好nginx对应的文件https://www.cnblogs.com/feiyuanxing/p/4668818.htmlhttps://www.runoob.com/w3cnote/nginx-setup-intro.html注意sites...
2019-10-13 12:54:08 114 1
原创 TeamViewer Could not connect to partner解决
故障:连着连着突然就断掉了,然后一直连不上。可以看到另一台电脑在线,但是连接的话报错: Could not connect to partner解决方法:网络适配器中关闭ipv6即可连接原因未知https://community.teamviewer.com/t5/General-Questions/Could-not-connect-to-partner/m-p/58005#M30693...
2019-09-05 15:47:02 2840
原创 Java动态代理
实现一个动态代理需要五个组件:1.接口A2.接口A的实现,被代理类、委托类3.handle类,invoke方法实现了修饰4.动态生成的$Proxy0类。代理类5.测试类实现代码如下:package Invocation;import java.lang.reflect.InvocationHandler;import java.lang.reflect.Method;impo...
2019-09-05 11:52:40 104
原创 Java定时任务
第一个方法在Spring中使用定时任务1.配置类中使用@EnableScheduling开启2.在bean的方法中添加@Schedule(fixedRate=5000) 每隔五秒执行@Schedule(cron = “0 28 11 ? …”) 每到固定时间执行默认是单个线程来执行,如果需要增加线程需要修改配置https://blog.csdn.net/qq_40127376/a...
2019-09-02 15:37:36 112
原创 动态规划
动态规划擅长求解最优解问题最长递增子序列(LIS)有序列{a1,a2,…,an}如{3 4 0 1 2},我们求其最长递增子序列长度。第一步,分解问题显然,最长递增子序列长度 = max { 以3结束的递增子序列的最长长度,以4结束的递增子序列的最长长度,以0结束的递增子序列的最长长度,以1结束的递增子序列的最长长度,以2结束的递增子序列的最长长度 }新建数组F,用F[i]代表以ai结束...
2019-08-11 00:00:40 134
原创 锁的分类
在不是很严格的意义上可以认为:悲观锁 = 操作系统互斥锁,关开中断实现 = 重量级锁乐观锁 = 自旋锁,CAS实现 = 轻量级锁 (自适应自旋锁可以控制轮询的次数或者时间,超过就阻塞了)偏向锁 = 压根没有锁Java中有三种锁,偏向锁,轻量级锁和重量级锁当然Java中还存在读写锁,读写锁的实现方式暂时不明。关于更细粒度的锁是不是会导致性能下降的问题1.更细粒度的锁几乎一定能引起并发...
2019-08-05 23:38:30 138 1
原创 CSAPP 代码运行和fork哪个先运行
sudo mv csapp.h /usr/includesudo mv csapp.c /usr/include在 csapp.h 文件 #endif 之前添加 #include"csapp.c"记得加上 -lpthread 选项运行以下脚本:/* $begin waitprob0 */int main() { if (Fork() == 0) { prin...
2019-07-25 16:01:20 163
原创 《redis设计与实现》扫视
第2章 简单动态字符串(SDS) redis的字符串不是直接用c语言的字符串,而是用了一种称为简单动态字符串(SDS)的抽象类型,并将其作为默认字符串。 redis中包含字符串值的键值对在底层都是由SDS实现的。 len和free属性: 取消了\0,可以存放二进制数据1)空间预分配当需要增长字符串时,sds不仅会分配足够的空间用于增长,还会预分配未使用空间。分配的规则是,如果...
2019-07-23 17:58:26 145 1
原创 大厂面试
阿里一面问爬虫项目redis大数据去重线程调度时耗费最大的是什么锁的实现XSS CSRFLL(1)和LL(2)用过什么编译的工具吗问我Java熟悉吗,我说不熟悉怎么判断一个链表有环。 没想到,遍历一遍。。头条一面头条一面:问爬虫项目redis去重,大数据(10T)怎么去重复值redis和mysql速度量级比较redis是单线程的吗kafka,消息队列的作用kafk...
2019-07-16 22:13:52 499 2
原创 启动embed H2数据库的web console
Spring实战中的连接数据库代码@Configurationpublic class DataConfig { @Bean public DataSource dataSource() { return new EmbeddedDatabaseBuilder() .setType(EmbeddedDatabaseType.H2) ...
2019-07-15 19:27:26 1483
原创 操作系统真象还原笔记——x86下的概念总结
保护模式保护模式,是一种80286系列和之后的x86的CPU操作模式。保护模式是设计用来增强多任务体系、内存保护、分页系统,以及硬件支援的虚拟内存。1.为什么需要保护模式,因为实模式存在以下缺陷:安全缺陷:没有特权级,用户进程可以任意修改内存使用缺陷:由于地址总线的限制,内存只能使用1MB(20位,分段机制)。要启用保护模式,需要以下三步:(1)打开 A20 。(2)加载 gdt ...
2019-07-14 13:55:44 417
原创 Spring实战15-17章
十五章:RPCSpring支持多种不同的RPC模型,包括RMI,Hessian和Burlap以及Spring自带的HTTP invoker。调用风格都能保持一致。在所有的模型中,服务都作为Spring所管理的bean配置到我们的应用中。对于本地调用方:Spring提供一个代理工厂bean,能生成一个调用特定RMI服务的bean,这样就能把它(bean)装配到我们的Spring应用中。同时还能...
2019-07-10 18:00:06 109
原创 java笔记
start() : 它的作用是启动一个新线程,新线程会执行相应的run()方法。start()不能被重复调用。run() : run()就和普通的成员方法一样,可以被重复调用。单独调用run()的话,会在当前线程中执行run(),而并不会启动新线程!class RunnableDemo implements Runnable { private Thread t; privat...
2019-07-02 21:41:49 77
原创 数据库转换
1.使用ESF Database Migration Toolkit - Professional按照提示进行操作即可2.任意数据库转换系统 DB2DB 1.6 没有尝试3.使用jetbrains系列IDE自带的数据库插件进行转换打开两个数据库,一个连接源数据库,一个连接目的数据库打开要导入的表,选择上方的export to databases,选择目的数据库,导入出现一些错误:1:...
2019-06-25 20:20:50 685
原创 spring学习小结
一个spring程序由组件(Bean)、配置文件、容器(context)三部分组成容器也是主程序逻辑的地方,如:package com.test1; import org.springframework.context.ApplicationContext;import org.springframework.context.support.ClassPathXmlApplication...
2019-06-15 18:19:09 126
原创 IDEA+maven+springMVC第一次启动
第一次启动遇到了不少问题启动一个全新的maven项目,右键添加框架,web+springMVC出现两个配置文件applicationContext.xml和dispatcher-servlet.xmlApplicationContext.xml 是spring 全局配置文件,用来控制spring 特性的dispatcher-servlet.xml 是spring mvc里面的,控制器、拦...
2019-06-12 20:20:33 2466
apache-maven-3.6.3.zip
2020-08-18
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人