highlighter

springboot过滤器禁止ip频繁访问

空扰寡人 提交于 2020-04-12 14:58:46
1.编写一个过滤器: import lombok.extern.slf4j.Slf4j; import javax.servlet.*; import javax.servlet.annotation.WebFilter; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; import java.io.IOException; import java.util.Iterator; import java.util.Set; import java.util.concurrent.ConcurrentHashMap; @Slf4j @WebFilter(urlPatterns="/dyflight/*") public class IpFilter implements Filter{ /** * 默认限制时间(单位:ms)3600000,3600(s), */ private static final long LIMITED_TIME_MILLIS = 10 * 1000; /** * 用户连续访问最高阀值,超过该值则认定为恶意操作的IP,进行限制 */ private static final int LIMIT_NUMBER = 5; /**

on duplicate key update 的用法说明(解决批量操作数据,有就更新,没有就新增)mybatis批量操作数据更新和添加

早过忘川 提交于 2020-04-12 13:32:50
项目用的ORM框架是用springdatajpa来做的,有些批量数据操作的话,用这个效率太低,所以用mybatis自己写sql优化一下。 一般情况,我们肯定是先查询,有就修改,没有就添加,这样的话,单个操作还好,如果是大量数据的话,每次都需要先查后改(如果用springdatajpa的话,添加之前还得查一遍),太消耗资源了。 那么mysql有没有解决的办法呢?当然是有的,我查了一些资料,有两种办法,一种是使用使用replace into ,还有一种是on duplicate key update来解决,我先来演示一下这两种办法的区别。 首先创建一个表(我设置的username列唯一,用户名不可重复) CREATE TABLE user_table( id INT PRIMARY KEY AUTO_INCREMENT, username VARCHAR( 10 ) UNIQUE KEY, address VARCHAR( 10 ) ) 添加一条数据 INSERT INTO user_table (id,username,address) VALUE (NULL,'胡俊杰','北京') 目的:先查询数据是否存在,再修改(用一条语句实现),胡俊杰不在北京了,跑去黑龙江了 REPLACE INTO user_table(id,username,address) VALUE (NULL,

Celery

扶醉桌前 提交于 2020-04-12 13:32:16
1 Celery介绍   1、celery应用举例       1、Celery 是一个 基于python开发的分布式异步消息任务队列,通过它可以轻松的实现任务的异步处理,           如果你的业务场景中需要用到异步任务,就可以考虑使用celery       2、你想对100台机器执行一条批量命令,可能会花很长时间 ,但你不想让你的程序等着结果返回,而是给你返回 一个任务ID,         你过一段时间只需要拿着这个任务id就可以拿到任务执行结果, 在任务执行ing进行时,你可以继续做其它的事情       3、Celery 在执行任务时需要通过一个消息中间件来接收和发送任务消息,以及存储任务结果, 一般使用rabbitMQ or Redis   2、Celery有以下优点       1、简单:一单熟悉了celery的工作流程后,配置和使用还是比较简单的       2、高可用:当任务执行失败或执行过程中发生连接中断,celery 会自动尝试重新执行任务       3、快速:一个单进程的celery每分钟可处理上百万个任务       4、灵活: 几乎celery的各个组件都可以被扩展及自定制   3、Celery基本工作流程图             user: 用户程序,用于告知celery去执行一个任务。      broker: 存放任务

【vue/css】如何给vue页面添加背景图片-vue cli3

微笑、不失礼 提交于 2020-04-12 08:48:32
找了很多教程终于做好了,现贴出来,以备不时之需。 1、首先需要两个div,一个用来放背景图,一个用来放除背景图之外的东西 1 <div class="background"></div> 2 <div class="front"></div> 第一个div放背景图 <div class="background"> <img :src="imgSrc" width="100%" height="100%" alt="" /> </div> 第二个div放登录页面,这里就不贴出来了。这样html部分就写完了,非常简单 2、js部分,这里也非常简单,但有一点,尝试使用css自带方式即src="图片路径"方式无法导入图片,可能是路径原因,改用值绑定方式 文件路径为:   |——src   |————assets   |——————images   |————————bg2.jpg   |——components   |————page   |——————login.vue js为:   data(){ return { imgSrc:require('../../assets/images/bg2.jpg') } } 3、css部分。css有个属性叫 z-index ,是用来确定元素层叠关系的,值大的元素显示在值小的元素的上面。同时,该元素position必须为absolute才会起作用

怎么在.Net Core3.0/ 3.1Webapi 中使用Log4net 写日志 及读取配置文件的信息

a 夏天 提交于 2020-04-12 08:27:55
1:安装Log4Net的 NuGet 包: 我们通常之需要安装这一个包即可,其他的主包会自动被添加进来: insatll-package Microsoft.Extensions.Logging.Log4Net.AspNetCore 3.0.0 (如果不行就直接NuGet可视化安装)! 2:Log4Net的配置文件的内容: <?xml version="1.0" encoding="utf-8" ?> <log4net> <!-- Define some output appenders --> <appender name="rollingAppender" type="log4net.Appender.RollingFileAppender"> <file value="Errorlog\\log.txt" /> <!--追加日志内容--> <appendToFile value="true" /> <!--防止多线程时不能写Log,官方说线程非安全--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <!--可以为:Once|Size|Date|Composite--> <!--Composite为Size和Date的组合--> <rollingStyle value="Composite"

怎么在.Net Core3.0/ 3.1Webapi 中使用Log4net 写日志 及读取配置文件的信息

99封情书 提交于 2020-04-12 08:24:53
1:安装Log4Net的 NuGet 包: 我们通常之需要安装这一个包即可,其他的主包会自动被添加进来: insatll-package Microsoft.Extensions.Logging.Log4Net.AspNetCore 3.0.0 (如果不行就直接NuGet可视化安装)! 2:Log4Net的配置文件的内容: <?xml version="1.0" encoding="utf-8" ?> <log4net> <!-- Define some output appenders --> <appender name="rollingAppender" type="log4net.Appender.RollingFileAppender"> <file value="Errorlog\\log.txt" /> <!--追加日志内容--> <appendToFile value="true" /> <!--防止多线程时不能写Log,官方说线程非安全--> <lockingModel type="log4net.Appender.FileAppender+MinimalLock" /> <!--可以为:Once|Size|Date|Composite--> <!--Composite为Size和Date的组合--> <rollingStyle value="Composite"

Drupal 远程代码执行漏洞(CVE-2019-6339)简单复现

允我心安 提交于 2020-04-11 19:59:43
1.搭建环境docker 出于时间考虑,这里采用的是vulhub的镜像进行复现的地址 https://vulhub.org/#/environments/drupal/CVE-2019-6339/ 2.poc https://github.com/thezdi/PoC/blob/master/Drupal/drupal_xss_rce.zip 管理员修改资料处上传头像 3.先查看一下之前上传的图片的地址 Drupal的默认文件保存地址是/site/default/files/pictures/xxx-xxx/图片名字 phar: // ./sites/default/files/pictures/2020-04/blog-ZDI-CAN-7232-cat.jpg 然后设置一个临时目录 4.查看效果 这里列举出了/etc/passwd,证明是可以执行命令的 5. 简单分析了一下poc,然后修改一下 这里执行的是一条很简单的命令,稍微替换一下,比如ps -aux,此时是7个字节数,要把s对应的字节数目改成7 看一下结果 本来打算写个马的。。。但是www-data在这个html这个目录下权限是如下 aaa.txt是通过rce在www-data权限下的touch命令创建的,aa则是root用户创建的 -rw-r--r-- 1 root root 43 Apr 4 07:55 aa.txt

Drupal 远程代码执行漏洞(CVE-2019-6339)简单复现

半腔热情 提交于 2020-04-11 19:59:09
1.搭建环境docker 出于时间考虑,这里采用的是vulhub的镜像进行复现的地址 https://vulhub.org/#/environments/drupal/CVE-2019-6339/ 2.poc https://github.com/thezdi/PoC/blob/master/Drupal/drupal_xss_rce.zip 管理员修改资料处上传头像 3.先查看一下之前上传的图片的地址 Drupal的默认文件保存地址是/site/default/files/pictures/xxx-xxx/图片名字 phar: // ./sites/default/files/pictures/2020-04/blog-ZDI-CAN-7232-cat.jpg 然后设置一个临时目录 4.查看效果 这里列举出了/etc/passwd,证明是可以执行命令的 5. 简单分析了一下poc,然后修改一下 这里执行的是一条很简单的命令,稍微替换一下,比如ps -aux,此时是7个字节数,要把s对应的字节数目改成7 看一下结果 本来打算写个马的。。。但是www-data在这个html这个目录下权限是如下 aaa.txt是通过rce在www-data权限下的touch命令创建的,aa则是root用户创建的 -rw-r--r-- 1 root root 43 Apr 4 07:55 aa.txt

Drupal 远程代码执行漏洞(CVE-2019-6339)简单复现

强颜欢笑 提交于 2020-04-11 19:48:42
1.搭建环境docker 出于时间考虑,这里采用的是vulhub的镜像进行复现的地址 https://vulhub.org/#/environments/drupal/CVE-2019-6339/ 2.poc https://github.com/thezdi/PoC/blob/master/Drupal/drupal_xss_rce.zip 管理员修改资料处上传头像 3.先查看一下之前上传的图片的地址 Drupal的默认文件保存地址是/site/default/files/pictures/xxx-xxx/图片名字 phar: // ./sites/default/files/pictures/2020-04/blog-ZDI-CAN-7232-cat.jpg 然后设置一个临时目录 4.查看效果 这里列举出了/etc/passwd,证明是可以执行命令的 5. 简单分析了一下poc,然后修改一下 这里执行的是一条很简单的命令,稍微替换一下,比如ps -aux,此时是7个字节数,要把s对应的字节数目改成7 看一下结果 本来打算写个马的。。。但是www-data在这个html这个目录下权限是如下 aaa.txt是通过rce在www-data权限下的touch命令创建的,aa则是root用户创建的 -rw-r--r-- 1 root root 43 Apr 4 07:55 aa.txt

Drupal 远程代码执行漏洞(CVE-2019-6339)简单复现

☆樱花仙子☆ 提交于 2020-04-11 19:48:20
1.搭建环境docker 出于时间考虑,这里采用的是vulhub的镜像进行复现的地址 https://vulhub.org/#/environments/drupal/CVE-2019-6339/ 2.poc https://github.com/thezdi/PoC/blob/master/Drupal/drupal_xss_rce.zip 管理员修改资料处上传头像 3.先查看一下之前上传的图片的地址 Drupal的默认文件保存地址是/site/default/files/pictures/xxx-xxx/图片名字 phar: // ./sites/default/files/pictures/2020-04/blog-ZDI-CAN-7232-cat.jpg 然后设置一个临时目录 4.查看效果 这里列举出了/etc/passwd,证明是可以执行命令的 5. 简单分析了一下poc,然后修改一下 这里执行的是一条很简单的命令,稍微替换一下,比如ps -aux,此时是7个字节数,要把s对应的字节数目改成7 看一下结果 本来打算写个马的。。。但是www-data在这个html这个目录下权限是如下 aaa.txt是通过rce在www-data权限下的touch命令创建的,aa则是root用户创建的 -rw-r--r-- 1 root root 43 Apr 4 07:55 aa.txt