自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+

hengliang_的博客

技术交流

  • 博客(73)
  • 资源 (3)
  • 收藏
  • 关注

转载 MyBatis中 #{} 与 ${} 的区别

Mybatis中的#{}用于传递查询的参数,用于从dao层传递一个string参数过来(也可以是其他参数),select * from 表名 order by age=#{age}Mybatis会把这个参数转换成一个字符串。select * from 表名 order by age=“age” 相当于jdbc中的预编译,安全而${}一般用于order by的后面,Mybatis不会对这个参数进行任何的处理,直接生成了sql语句。例:传入一个年龄age的参数,select * from 表名 orde

2022-05-30 14:45:50 2445

原创 csrf攻击原理与解决方法

0x01前言因为现代浏览器的工作机制原因,造成一种WEB攻击形态的存在, 这种攻击形式叫做CSRF攻击,以往我们是从攻击角度分析这种攻击的原理和操作。这次我们给出攻击原理同时,给出CSRF在服务器端的防御的解决方案。CSRF是现代WEB程序要面对的共通性问题,在很多流行的WEB框架中,都会将CSRF的问题直接在WEB框架层面解决。我们先抛出CSRF这个问题,然后介绍基于时间与签名的防护手段,并且给出的这种防御手段的具体代码实现。过程中使用了Lua语言进行实现功能, LUA是一种容易理解的脚本语言,大

2021-09-10 16:01:39 5653

原创 springboot异步执任务

1.同步方式controller/** * 同步处理 * @return */ @RequestMapping(value = "test2",method = RequestMethod.GET) public String test2(){ loginService.getTest2(); logger.info(Thread.currentThread().getName()+"==========主线程名");...

2021-07-27 10:29:46 784

原创 JVM远程调试功能

有时候想调试线上程序,但是是jar包,可以启用远程调试功能 在本地调试远程代码。远程JVM启用调试模式java-server -Xms256m -Xmx256m -XX:PermSize=64m -XX:MaxPermSize=128m -Xdebug -Xrunjdwp:transport=dt_socket,server=y,suspend=n,address=5005 -jar (jar包名字路径)--spring.config.location=file:/home/web/api-1...

2021-03-11 08:55:35 399

转载 反弹shell原理与实现

什么是反弹shell?  反弹shell(reverse shell),就是控制端监听在某TCP/UDP端口,被控端发起请求到该端口,并将其命令行的输入输出转到控制端。reverse shell与telnet,ssh等标准shell对应,本质上是网络概念的客户端与服务端的角色反转。为什么要反弹shell?通常用于被控端因防火墙受限、权限不足、端口被占用等情形。举例:假设我们攻击了一台机器,打开了该机器的一个端口,攻击者在自己的机器去连接目标机器(目标ip:目标机器端口),这是比较常规的.

2021-03-09 10:18:45 1893

原创 request.getParameter和request.getInputStream、request.getReader区别

这三个方法都是从request对象中得到提交的数据,但是用途不同。要根据<form>表单提交数据的编码方式选择不同的方法。HTML中的form表单的一个关键属性 enctype:1.enctype=application/x- www-form-urlencoded这种编码方式是默认的编码方式。编码后的结果通常是field1=value2&field2=value2&… 的形式,如 name=aaaa&password=bbbb。 通常使用的表单也是采用这种方式编

2021-03-09 08:57:30 311

原创 什么事webshell?

1、什么是webshell webshell是web入侵的脚本攻击工具。简单的说来,webshell就是一个asp或php木马后门,黑客在入侵了一个网站后,常常在将这些asp或php木马后门文件放置在网站服务器的web目录中,与正常的网页文件混在一起。然后黑客就可以用web的方式,通过asp或php木马后门控制网站服务器,包括上传下载文件、查看数据库、执行任意程序命令等。为了更好理解webshell我们学习两个概念:什么是“木马”?“木马”全称是“特...

2021-03-03 15:28:54 4410 4

原创 Docker-镜像中删除setuid和setgid权限

镜像中删除setuid和setgid权限描述删除镜像中的setuid和setgid权限防止容器中的提权攻击。解释setuid和setgid可用于提升权限。 虽然这些权限有时必须,应考虑为镜像中不需要的软件包删除这些权限。审计方法在镜像上运行以下命令以列出具有setuid和setgid权限的可执行文件:docker run <Image_ID> find / -perm +6000-type f -exec ls -ld {} \; 2> /dev/nul.

2021-02-05 15:13:06 730

原创 Docker-禁用userland代理

禁用userland代理描述当容器端口需要被映射时,docker守护进程都会启动用于端口转发的userland-proxy方式。 如果使用了DNAT方式,该功能可以被禁用。解释Docker引擎提供了两种机制将主机端口转发到容器,DNAT和userland-proxy。 在大多数情况下,DNAT模式是首选,因为它提高了性能,并使用本地Linux iptables功能而需要附加组件。如果DNAT可用,则应在启动时禁用userland-proxy以减少安全风险。审计方法ps -.

2021-02-05 14:54:42 2812

原创 Docker-不使用aufs存储驱动程序

不使用aufs存储驱动程序描述不要使用aufs作为Docker实例的存储驱动。解释'aufs' 存储驱动程序是较旧的存储驱动程序。它是基于 Linux 内核的补丁集,不太可能合并到主要的 Linux 内核中。'aufs' 在 Docker 中只是保留了历史遗留支持的,现在主要是使用 'overlay2' 和 'devicemapper' 。而且最重要的是,在许多的使用最新的 Linux 内核的发行版中,'aufs' 已经不再被支持了。审计方法执行以下命令并验证aufs.

2021-02-05 14:46:08 701

原创 Docker-为容器创建一个单独的分区

为容器创建一个单独的分区描述所有Docker容器及数据和元数据都存储在/var/lib/docker目录下。 默认情况下,/var/lib/docker将根据可用性挂载在/或/var分区下。解释Docker依赖于/var/lib/docker作为默认目录,其存储所有Docker相关文件,包括镜像文件。该目录可能会被恶意的写满,导致Docker、甚至主机可能无法使用。因此,建议为存储Docker文件创建一个单独的分区(逻辑卷)。审计方法grep /var/lib/docke.

2021-02-05 14:39:12 1540 1

原创 spring cloud eureka 微服务注册中心讲解

1.首先搭建spring cloud eureka注册中心贴几张图,简简单单搭建一个eureka注册中心看一下pom文件的依赖,是否正确: <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-...

2020-11-20 16:32:14 255

原创 spring cloud config微服务全局配置中心详解

Spring Cloud Config是Spring Cloud团队创建的一个全新项目,用来为分布式系统中的基础设施和微服务应用提供集中化的外部配置支持的,它分为服务端与客户端两个部分。其中服务端也成为分布式配置中心,它是一个独立的微服务应用,用来连接配置仓库并为客户端提供获取配置信息、加密/解密信息等访问接口;而客户端则是微服务架构中的各个微服务应用或基础设施,它们通过指定的配置中心来管理应用资源与业务相关的配置内容,并在启动的时候从配置中心获取和加载配置信息。Spring Cloud C..

2020-11-20 09:41:42 1151

原创 docker安装rabbitmq镜像,做成容器

1.首先查看rabbit的镜像docker search rabbit根据自己的需要自行根据版本号下载注意:如果需要有web客户端的,需要下载:docker pull3-management tag为3-management时带有web管理界面的,latest不带管理界面2.查看下载好的镜像开始创建rabbitmq容器docker run -d --name myrabbitmq -p 5672:5672 -p 15672:15672 rabb...

2020-11-18 11:00:16 382

原创 docker安装mysql镜像,做成容器

1.获取mysql镜像首先查询需要的mysql镜像可以从 Docker Hub 上查看所有 Mysql 的版本,同理也可以查询各个版本使用的详细命令2.mysql镜像下载[root@localhost ~]# docker pull mysql:latestTrying to pull repository docker.io/library/mysql ...5.5: Pulling from docker.io/library/mysqlbe8881be8156: P...

2020-11-18 10:39:04 919

原创 docker安装redis镜像,做成容器

1.获取redis镜像docker pull redis:latest(冒号后面是版本号)不加版本号默认获取最新版本,也可以使用docker search redis查看镜像来源如图:2.然后启动容器,做映射 ①创建配置文件目录存放redis.conf,文件从官网下载。 ②创建文件夹,新建配置文件贴入从官网下载的配置文件并修改mkdir /usr/local/dockervi/usr/local/docker/redis.conf③修改启动默认配...

2020-11-18 10:24:50 1234

原创 spring事务机制

1 Spring事务管理机制1.1 Spring框架的介绍Spring框架是开发人员使用的最流行的一个框架.1.2 Spring事务管理的优点 提供统一的API接口支持不同的数据源Sring本身没有提供任何事务支持,只是对外提供统一的编程API接口,让数据源驱动方来对Spring事务进行实现,Spring事务的核心是PlatformTransactionManager接口. 提供了声明式的事务管理Spring的事务实现可以是编程式和声明式,声明式的事务管理运用的是...

2020-11-11 14:34:04 241

原创 Centos安装docker

条件CentOS仅在发行版本的内核支持Docker。要求系统为64位、系统内核版本为3.10以上。使用yum安装Docker分为Docker CE和Docker EE两种版本。Docker CE即社区免费版,Docker EE即企业版,强调安全,但需付费使用。安装Docker CE删除已有Dockersudo yum remove docker \         docker-client \         docker-client-latest \        

2020-11-04 09:40:22 178

转载 Java微服务下的分布式事务介绍及其解决方案2

1.前言本文将详细介绍分布式的解决方案–消息队列实现分布式事务的解决方案,需要大家对我第一篇对分布式事务的介绍来了解下,会更清楚一点哦,第一篇博客的地址分布式事务的介绍2.业务场景介绍我们模拟慕课网付费课程的下单,你在慕课网买了视频后,你的学习列表要订单服务要更新你支付的状态,此外,学习服务要有你的添加选课信息3.解决方案下面我详细介绍下,这个解决方案1、支付成功后,订单服务向本地数据库更新订单状态并向消息表写入“添加选课消息”,通过本地数据库保证订单状态和添加选课消息的

2020-11-02 13:33:53 260

转载 Java微服务下的分布式事务介绍及其解决方案

1.前言1.由于最近在学习springcloud的项目,现在互联网下,分布式,微服务横行,难免会遇到分布式下的事务问题,这是一个难点,也是面试经常问的,别面试官一看你简历,都是微服务项目,问你了解啥是分布式事务不,你来句没有,这就很尴尬了,当然微服务下可能没有分布式事务,但是很多场景是需要分布式事务的,下面我就来介绍下什么是分布式事务,和分布式事务的解决方案2 问题描述在介绍分布式事务下,下面我们先来了解一个常见应用场景,这个场景(类似慕课网购买付费课程)也是我后面要讲的分布式事务的解决方

2020-11-02 10:24:44 401

原创 数据库事务的四大特性以及事务的隔离级别-与-Spring事务传播机制&隔离级别

如果一个数据库声称支持事务的操作,那么该数据库必须要具备以下四个特性:⑴ 原子性(Atomicity)  原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚,这和前面两篇博客介绍事务的功能是一样的概念,因此事务的操作如果成功就必须要完全应用到数据库,如果操作失败则不能对数据库有任何影响。⑵ 一致性(Consistency)  一致性是指事务必须使数据库从一个一致性状态变换到另一个一致性状态,也就是说一个事务执行之前和执行之后都必须处于一致性状态。  拿转...

2020-10-21 15:45:11 142

转载 使用Spring @DependsOn控制bean加载顺序

使用Spring @DependsOn控制bean加载顺序spring容器载入bean顺序是不确定的,spring框架没有约定特定顺序逻辑规范。但spring保证如果A依赖B(如beanA中有@Autowired B的变量),那么B将先于A被加载。但如果beanA不直接依赖B,我们如何让B仍先加载呢?控制bean初始化顺序可能有些场景中,bean A 间接依赖 bean B。如Bean B应该需要更新一些全局缓存,可能通过单例模式实现且没有在spring容器注册,bean A需要使用该缓存;因此

2020-10-20 13:45:38 145

原创 oracle 数据类型varchar2(byte)和varchar2(char)和nvarchar2()区别

无论是varchar2还是nvarchar2,最大字节数都是4000。varchar2(byte) 存储的是字节。varchar2(byte):就是默认的表示方式,比如我们写成:varchar2(100),就相当于varchar2(100 byte),表示最大字节数是100,该字段最多能容纳100个字节,强调空间大小。由于我们描述的是字节,因此,保存汉字等字符时,就要小心了。如果你的数据库...

2020-01-17 17:08:11 3431

原创 页面跳转的两种方式(转发和重定向)区别 简单介绍

RequestDispathcher.forward方法只能将请求转发给同一个WEB应用中的组件;而HttpServletResponse.Redirect不仅可以重定向到当前应用程序中的其他资源,还可以重定向到同一个站点应用程序上的其他资源,甚至是使用绝对URL重定向到其他站点上的资源。如果传递给HttpServletResponse.Redirect 相对URL以 "/" 开头,那么他是相对...

2019-10-23 10:35:26 705

原创 HTTP、HTTPS协议简单介绍

HTTP:是互联网上应用最为广泛的一种网络协议,是一个客户端和服务器端请求和应答的标准(TCP),用于从WWW服务器传输超文本到本地浏览器的传输协议,它可以使浏览器更加高效,使网络传输减少。HTTPS:是以安全为目标的HTTP通道,简单讲是HTTP的安全版,即HTTP下加入SSL层,HTTPS的安全基础是SSL,因此加密的详细内容就需要SSL。区别:1、https协...

2019-10-12 14:36:11 242

原创 数据库三大范式详解

文章重点:第二范式(2NF)和第三范式(3NF)的概念很容易混淆,区分它们的关键点在于:2NF,非主键列是否完全依赖于主键,还是依赖于主键的一部分;3NF,非主键列是直接依赖于主键,还是直接依赖于非主键列。什么是范式:英文名称是 Normal Form,它是英国人 E.F.Codd(关系数据库的老祖宗)在上个世纪7...

2019-07-16 14:37:31 338

原创 数据库ACID

谈谈数据库的ACID一.事务定义:所谓事务,它是一个操作序列,这些操作要么都执行,要么都不执行,它是一个不可分割的工作单位。准备工作:为了说明事务的ACID原理,我们使用银行账户及资金管理的案例进行分析。 // 创建数据库 create table account( idint primary key not null, namevarchar(...

2019-05-07 17:28:15 4326

转载 JAVA IO流

JavaIO的一般使用原则: 一、按数据来源(去向)分类: 1、是文件:FileInputStream,FileOutputStream,FileReader,FileWriter 2、是byte[]:ByteArrayInputStream,ByteArrayOutputStream 3、是Char[]:CharArrayRe...

2019-05-04 12:55:59 177

转载 java IO流学习

Java流操作有关的类或接口:Java流类图结构:流的概念和作用流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象。即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作。IO流的分类 根据处理数据类型的不同分为:字符流和字节流 </li>...

2019-05-04 12:00:10 183

原创 java 图片Base64转成文件流,直接在浏览器访问图片

因为业务,需要把图片base64转成文件流,然后直接在浏览器访问就可以看见图片 /** * 回显图片 * @author liuhengliang * @return ModelAndView */ @RequestMapping(value = "/image") private void getImageById(Htt...

2019-04-25 17:40:54 10204 1

原创 CKEDITOR自定义按钮上传图片

zh前端时间需要用到富文本编辑器,经理推荐了这个ckeditor,开发过程中有上传图片的功能,由于业务需要,我们不存图片路径,只好把图片转成base64当成标签存到数据库,编辑器自带的上传图片功能都是存储路径的(也有可能是学艺不精)我们需要转成base64.只好自定义一个上传图片的功能。在ckeidtor的目录下有个plugins文件夹,我们要做的就在这个文件夹里在plugins下新建一个文...

2019-04-25 13:54:02 1201

转载 Oracle分页和MySql分页区别

转载地址:https://www.cnblogs.com/xuelu/p/3770738.html如果我们是通过JDBC的方式访问数据库,那么就有必要根据数据库类型采取不同的SQL分页语句,对于MySql数据库,我们可以采用limit语句进行分页,对于Oracle数据库,我们可以采用rownum的方式进行分页.一、MySQL使用limit分页select * from table_n...

2019-04-02 17:32:54 5404

原创 JDK JRE JVM三者之间的关系

JAVA程序必须进行编译,实际上任何编程语言都需要一个切实有用的编译器。编译器是一种将程序源代码转换成可执行格式(可以是字节码,本机代码或者其他代码)的程序。在开始java编程之前,需要先下载一个java编译器,它是一个名为javac的程序,这个名称是JAVA compiler的缩写。 虽然javac可以把Java源代码编译成字节码,但是要运行字节码还需要一个Java虚拟机,此外,由于总...

2019-03-26 11:20:31 427

原创 SSM集成webservice-绝对能用

ssm集成webservice,我这里用的是CXF,因为对于Axis和Afire来说CXF算是非常好的,这里就不对他们的区别多说了,首先:1、加入相应的依赖:&lt;!--webServiceCxf  --&gt;        &lt;!-- https://mvnrepository.com/artifact/org.apache.cxf/cxf-core --&gt;      ...

2019-01-16 14:57:38 1022 1

转载 Java实现冒泡排序

1.算法概念2.算法原理3.算法稳定性4.算法实现1.算法概念冒泡排序(Bubble Sort)是一种简单的排序算法。它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。这个算法的名字由来是因为越大的元素会经由交换慢慢“浮”到数列的顶端。2.算法原理冒泡排序算法的运作如下:(从后...

2018-11-28 10:47:32 244

原创 Windows下Nginx+Tomcat群集

NginxNginx是一款轻量级的Web 服务器/反向代理服务器及电子邮件(IMAP/POP3)代理服务器,并在一个BSD-like 协议下发行。其特点是占有内存少,并发能力强,事实上nginx的并发能力确实在同类型的网页服务器中表现较好,中国大陆使用nginx网站用户有:百度、京东、新浪、网易、腾讯、淘宝等。———来自百度百科互联网飞速发展的今天,大用户量高并发已经成为互联网的主体,怎样能...

2018-11-26 09:38:18 192

原创 Tomcat优化

Tomcat在各位JavaWeb从业者常常就是默认的开发环境,但是Tomcat的默认配置作为生产环境,尤其是内存和线程的配置,默认都很低,容易成为性能瓶颈.幸好Tomcat还有很多的提升空间.下文介绍一下Tomcat优化,可以分为内存,线程,IO.一:Tomcat内存优化,启动时告诉JVM我要一块大内存(调优内存是最直接的方式)Windows 下的catalina.batLinux...

2018-10-25 15:53:15 161

转载 SQL注入

原文地址:http://www.cnblogs.com/rush/archive/2011/12/31/2309203.html1.1.1 摘要日前,国内最大的程序员社区CSDN网站的用户数据库被黑客公开发布,600万用户的登录名及密码被公开泄露,随后又有多家网站的用户密码被流传于网络,连日来引发众多网民对自己账号、密码等互联网信息被盗取的普遍担忧。网络安全成为了现在互联网的焦点,这也...

2018-10-25 11:02:39 205 1

原创 TCP/IP三次握手,四次挥手

前言昨天晚上被一位师傅问到了TCP/IP的工作机制,心里很清楚三次握手,然而对于四次挥手却忘了,这是大学习里学过的,奋而翻阅书籍和网络对之前所学的做一个温顾,算是夯实自我吧。TCP(Transmission Control Protocol)网络传输控制协议,是一种面向连接的、可靠的、基于字节流的传输层通信协议,数据传输前建立连接的工作要经过三次握手,数据传输后断开连接的工作要经过四次挥手。...

2018-10-16 14:42:07 164

转载 面试题

1、简述一下JSP的运行原理答案:JSP的运行原理(1)WEB容器JSP页面的访问请求时,它将把该访问请求交给JSP引擎去处理。Tomcat中的JSP引擎就是一个Servlet程序,它负责解释和执行JSP页面。(2)每个JSP页面在第一次被访问时,JSP引擎先将它翻译成一个Servlet源程序,接着再把这个Servlet源程序编译成Servlet的class类文件,然后再由WEB容器像调...

2018-10-15 11:22:10 571

ExtJs Demo

基于JS的Ext案例,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习,多多学习。

2017-09-05

powerdesigner

powerdesigner使用教程

2017-04-04

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除