Tomcat安全配置

news2024/12/29 10:55:37

1.删除webapps里面自带文件(关闭manage页面等)

删除webapps目录中的docs、examples、host-manager、manager等正式环境用不着的目录,这一步就可以解决大部分漏洞。有的网站没删除manager页面,并且管理员弱口令,导致直接Getshell


项目安全检查时,tomcat的管理界面老是作为安全漏洞出现,想解决这个问题也很简单。

刚打开tomcat 8080界面,后面不加后缀的话,默认访问的是tomcat管理页面

想要去掉默认该界面,重命名tomcat目录下的ROOT,并新建空文件夹命名为ROOT就可以了

删除webapps目录下的自带项目
在这里插入图片描述

2.禁止显示目录和文件列表

打开 tomcat的安装目录/conf/web.xml 文件,找到如下代码

    <servlet>
       <servlet-name>default</servlet-name>
       <servlet-class>org.apache.catalina.servlets.DefaultServlet</servlet-class>
       <init-param>
           <param-name>debug</param-name>
           <param-value>0</param-value>
       </init-param>
       <init-param>
           <param-name>listings</param-name>
           <param-value>true</param-value>
       </init-param>
       <load-on-startup>1</load-on-startup>
   </servlet>

显示文件列表

<param-value>true</param-value>中,如果值为true,则显示

在这里插入图片描述

不显示文件列表

<param-value>true</param-value>中,如果值为false,则不显示文件列表
上面相同的路径,再次访问结果如下
在这里插入图片描述

3.禁止显示异常调试信息(高危)

在各个常用的web站点中,经常会发现这样一个功能:当一个页面出错后,会自动跳转到一个页面上进行错误信息的提示。

描述

当请求处理期间发生运行时错误时,Apache Tomcat 将向请求者显示调试信息。建议不要向请求者提供此类调试信息。

加固建议

在 Tomcat 根目录下的 conf/web.xml 文件里面的 web-app 添加子节点:java.lang.Throwable/error.jsp,在 webapps 目录下创建 error.jsp,定义自定义错误信息

操作时建议做好记录或备份

conf/web.xml修改如下

如下代码中,我们将报错、服务器500以及404都跳转到了 error.jsp文件

<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/error.jsp </location>
</error-page>
<error-page>
    <error-code>500</error-code>
    <location>/error.jsp </location>
</error-page>
<error-page>
    <error-code>404</error-code>
    <location>/error.jsp </location>
</error-page>

建议

<error-page>
    <exception-type>java.lang.Exception </exception-type>
    <location>/error.jsp </location>
</error-page>

更改为

<error-page>
    <exception-type>java.lang.Throwable</exception-type>
    <location>/error.jsp </location>
</error-page>

关于 java.lang.Exception与java.lang.Throwable的区别

在这里插入图片描述
上图来自:https://blog.csdn.net/qq_43661841/article/details/103758527

下面的知识点内容转自:https://blog.csdn.net/weixin_38750084/article/details/88746931

  • Throwable是java.lang包中一个专门用来处理异常的类。它有两个子类,即Error 和Exception,它们分别用来处理两组异常。

  • Error用来处理程序运行环境方面的异常,比如,虚拟机错误、装载错误和连接错误,这类异常主要是和硬件有关的,而不是由程序本身抛出的。

  • Exception是Throwable的一个主要子类。Exception下面还有子类,其中一部分子类分别对应于Java程序运行时常常遇到的各种异常的处理,其中包括隐式异常。比如,程序中除数为0引起的错误、数组下标越界错误等,这类异常也称为运行时异常,因为它们虽然是由程序本身引起的异常,但不是程序主动抛出的,而是在程序运行中产生的。

  • Exception 子类下面的另一部分子类对应于Java程序中的非运行时异常的处理(在下图中将它们直接属于Exception了),这些异常也称为显式异常。它们都是在程序中用语句抛出、并且也是用语句进行捕获的,比如,文件没找到引起的异常、类没找到引起的异常等。
    一些主要子类对应的异常处理功能简要说明如下:

    • ArithmeticException——由于除数为0引起的异常;

    • ArrayStoreException——由于数组存储空间不够引起的异常;

    • ClassCastException—一当把一个对象归为某个类,但实际上此对象并不是由这个类 创建的,也不是其子类创建的,则会引起异常;

    • IllegalMonitorStateException——监控器状态出错引起的异常;

    • NegativeArraySizeException—一数组长度是负数,则产生异常;

    • NullPointerException—一程序试图访问一个空的数组中的元素或访问空的对象中的 方法或变量时产生异常;

    • OutofMemoryException——用new语句创建对象时,如系统无法为其分配内存空 间则产生异常;

    • SecurityException——由于访问了不应访问的指针,使安全性出问题而引起异常;

    • IndexOutOfBoundsExcention——由于数组下标越界或字符串访问越界引起异常;

    • IOException——由于文件未找到、未打开或者I/O操作不能进行而引起异常;

    • ClassNotFoundException——未找到指定名字的类或接口引起异常;

    • CloneNotSupportedException——一程序中的一个对象引用Object类的clone方法,但 此对象并没有连接Cloneable接口,从而引起异常;

    • InterruptedException—一当一个线程处于等待状态时,另一个线程中断此线程,从 而引起异常,有关线程的内容,将在下一章讲述;

    • NoSuchMethodException一所调用的方法未找到,引起异常;

    • Illega1AccessExcePtion—一试图访问一个非public方法;

    • StringIndexOutOfBoundsException——访问字符串序号越界,引起异常;

    • ArrayIdexOutOfBoundsException—一访问数组元素下标越界,引起异常;

    • NumberFormatException——字符的UTF代码数据格式有错引起异常;

    • IllegalThreadException—一线程调用某个方法而所处状态不适当,引起异常;

    • FileNotFoundException——未找到指定文件引起异常;

    • EOFException——未完成输入操作即遇文件结束引起异常。

Error类和Exception类的父类都是throwable类,他们的区别是:

  • Error类一般是指与虚拟机相关的问题,如系统崩溃,虚拟机错误,内存空间不足,方法调用栈溢等。对于这类错误的导致的应用程序中断,仅靠程序本身无法恢复和和预防,遇到这样的错误,建议让程序终止。

  • Exception类表示程序可以处理的异常,可以捕获且可能恢复。遇到这类异常,应该尽可能处理异常,使程序恢复运行,而不应该随意终止异常。

  • Exception类又分为运行时异常(Runtime Exception)和受检查的异常(Checked Exception ),运行时异常;ArithmaticException,IllegalArgumentException,编译能通过,但是一运行就终止了,程序不会处理运行时异常,出现这类异常,程序会终止。而受检查的异常,要么用try。。。catch捕获,要么用throws字句声明抛出,交给它的父类处理,否则编译不会通过。

  • 错误和异常的区别(Error vs Exception) 今天面试问了这样一个问题,“Error” 和 "Exception"之间有啥区别?我觉得挺有意思,但是似乎又不能脱口而出。查找了一番资料之后,稍微总结了一下。 1) error都是继承自父类java.lang.Error,而exception都继承自java.lang.Exception.

error.jsp 文件内容如下

<%@ page language="java"
         contentType="text/html;charset=UTF-8"
         session="true"
         isErrorPage="true"
%>
<!DOCTYPE html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>error</title>
</head>
<body>
<h1>程序出现错误,请联系管理员处理!</h1>
</body>
</html>

我们再访问一个不存在的项目的时候,就不报404,而是跳转到错误处理页了。
在这里插入图片描述

4. tomcat禁用不安全的HTTP方法

修改应用中的web.xml就只针对本应用起作用,修改tomcat中的web.xml就可以对启动在该tomcat下所有的应用起作用。

在应用的web.xml或者tomcat自己的web.xml中添加以下配置:

<!-- 禁用不安全的http方法 -->
<security-constraint>
    <web-resource-collection>
        <web-resource-name>DENY METHOD</web-resource-name>
        <url-pattern>/*</url-pattern>
        <http-method>PUT</http-method>
        <http-method>HEAD</http-method>
        <http-method>OPTIONS</http-method>
        <http-method>DELETE</http-method>
        <http-method>PATCH</http-method>
        <http-method>TRACE</http-method>
    </web-resource-collection>
    <auth-constraint></auth-constraint>
</security-constraint>
  • url-pattern 参数定义了你要禁用的链接,默认是/*
  • http-method参数包含了你要禁用的HTTP方法

此处也可以按如下所示进行更改

<security-constraint>
    <web-resource-collection><!-- 白名单配置-->
        <url-pattern>/*</url-pattern>
        <http-method-omission>GET</http-method-omission>
        <http-method-omission>POST</http-method-omission>
    </web-resource-collection>
    <auth-constraint />
</security-constraint>
<login-config>
	<auth-method>BASIC</auth-method>
</login-config>
  • http-method-omission:参数包含了你允许的HTTP方法

== 先启用了, 我们才能禁用它, 否则禁用会失效 ==
另外需要修改下server.xml,即允许TRACE访问:

<Connector port="8080" protocol="HTTP/1.1" allowTrace="true"  connectionTimeout="20000"
           redirectPort="8443" />

allowTrace="true" 代表开启 TRACE方法

http方法的补充说明

HTTP/1.1协议中共定义了八种方法(有时也叫“动作”)来表明Request-URI指定的资源的不同操作方式:

OPTIONS 返回服务器针对特定资源所支持的HTTP请求方法。也可以利用向Web服务器发送’*'的请求来测试服务器的功能性。

HEAD 向服务器索要与GET请求相一致的响应,只不过响应体将不会被返回。这一方法可以在不必传输整个响应内容的情况下,就可以获取包含在响应消息头中的元信息。

GET 向特定的资源发出请求。注意:GET方法不应当被用于产生“副作用”的操作中,例如在web app.中。其中一个原因是GET可能会被网络蜘蛛等随意访问。

POST 向指定资源提交数据进行处理请求(例如提交表单或者上传文件)。数据被包含在请求体中。POST请求可能会导致新的资源的建立和/或已有资源的修改。

PUT 向指定资源位置上传其最新内容。

DELETE 请求服务器删除Request-URI所标识的资源。

TRACE 回显服务器收到的请求,主要用于测试或诊断。

CONNECT HTTP/1.1协议中预留给能够将连接改为管道方式的代理服务器。

方法名称是区分大小写的。当某个请求所针对的资源不支持对应的请求方法的时候,服务器应当返回状态码405(Method Not Allowed);当服务器不认识或者不支持对应的请求方法的时候,应当返回状态码501(Not Implemented)。 
  
HTTP服务器至少应该实现GET和HEAD方法,其他方法都是可选的。当然,所有的方法支持的实现都应当符合下述的方法各自的语义定义。此外,除了上述方法,特定的HTTP服务器还能够扩展自定义的方法。

HTTP的访问中,一般常用的两个方法是:GET和POST。其实主要是针对DELETE等方法的禁用。

注意:如果不起效果

  1. 我们并不需要修改web-app协议(这个我的是不需要的,如果你tomcat有问题,可以试试)

  2. 有的时候我们配置了会不生效,这时候你需要找下,你的web项目是不是自定义了403页面,我们不生效的原因就是这个!我们需要做的就是注释掉它(有的时候我们是为了屏蔽tomcat版本,但是没办法,屏蔽了就是不生效),这样就生效了!!

<!--
    <error-page>
        <error-code>403</error-code>
        <location>/authorizationFailure.html</location>
    </error-page>
-->

5.禁用8005端口

telnet localhost 8005 然后输入 SHUTDOWN 就可以关闭 Tomcat,为了安全我们要禁用该功能

tomcat监听的关闭端口,就是说这个端口负责监听关闭tomcat的请求。

当执行shutdown.sh关闭tomcat就是链接8005端口执行SHUTDOWN命令;由此,我们直接用telnet向8005端口执行SHUTDOWN来关闭tomcat,这也是比较正统的关闭方式,如果这个端口没被监听,那么sh脚本就是无效的。

<Server port="-1" shutdown="SHUTDOWN">

注意:更改以后 shutdown.bat 命令失效

补充:Tomcat8005、8009、8080三个端口的含义是什么?

Tomcat8005、8009、8080三个端口的含义是什么?

在Tomcat Web服务器中,8005、8009和8080这三个端口分别代表以下含义:

  • 8005:该端口用于处理Tomcat Web服务器的SHUTDOWN命令。当Tomcat服务器需要关闭时,可以通过向该端口发送SHUTDOWN命令来关闭服务器。默认情况下,此端口只能在本地访问,因此只有在与Tomcat服务器在同一台机器上时,才能使用SHUTDOWN命令来关闭Tomcat服务器。

  • 8009:该端口通常用于将Tomcat服务器与Apache HTTP服务器进行连接。如果您希望使用Apache服务器来处理动态请求,可以使用该端口将Tomcat服务器与Apache服务器集成。默认情况下,此端口只能在本地访问。

  • 8080:该端口是Tomcat服务器默认的HTTP连接端口。当用户通过Web浏览器访问Tomcat服务器时,将使用此端口作为默认的HTTP连接端口。您可以在Tomcat服务器配置文件中更改此端口号。

需要注意的是,8005、8009和8080这三个端口都可以在Tomcat服务器配置文件中进行修改,以便满足特定的需求。

该知识转自:https://blog.csdn.net/Small_Casee/article/details/130745372

6.更改tomcat服务器默认端口

<Connector port="8080" protocol="HTTP/1.1" connectionTimeout="20000" URIEncoding="UTF-8"
    redirectPort="8443" />

默认port="8080"改为port="3728"

7.开启日志记录 | 安全审计(Tomcat 8.5.68自动配置)

描述

Tomcat需要保存输出日志,以便于排除错误和发生安全事件时,进行分析和定位

加固建议

1、修改Tomcat根目录下的conf/server.xml文件。
2、取消Host节点下Valve节点的注释(如没有则添加)。

<Valve className="org.apache.catalina.valves.AccessLogValve" directory="logs"
     prefix="localhost_access_log" suffix=".txt"
     pattern="%h %l %u %t &quot;%r&quot; %s %b" />

3、重新启动Tomcat

操作时建议做好记录或备份

8.禁止自动部署 | 服务配置

先部署,然后停止,修改配置,再重启

描述

配置自动部署,容易被部署恶意或未经测试的应用程序,应将其禁用

加固建议

修改Tomcat 根目录下的配置文件conf/server.xml,将host节点的autoDeploy属性设置为“false”,如果host的deployOnStartup属性(如没有deployOnStartup配置可以忽略)为“true”,则也将其更改为“false”

<Host name="localhost" 
      autoDeploy="false" deployOnStartup="false">
</Host>

操作时建议做好记录或备份

关于禁止自动部署的详细说明:https://blog.csdn.net/weixin_38094135/article/details/101242394

9. 避免为 tomcat 配置 manager-gui 弱口令 | 访问控制

此处与第1个一起看

描述

tomcat-manger 是 Tomcat 提供的 web 应用热部署功能,该功能具有较高权限,会直接控制 Tomcat 应用,应尽量避免使用此功能。如有特殊需求,请务必确保为该功能配置了强口令

加固建议

编辑 Tomcat 根目录下的配置文件 conf/tomcat-user.xml,修改 user 节点的 password 属性值为复杂密码, 密码应符合复杂性要求:

1、长度 8 位以上

2、包含以下四类字符中的三类字符:
英文大写字母 (A 到 Z)
英文小写字母 (a 到 z)
10 个基本数字 (0 到 9)
非字母字符 (例如 !、$、#、%、@、^、&)

3、避免使用已公开的弱密码,如:abcd.1234 、admin@123 等
操作时建议做好记录或备份

拓展

此节内容来自:https://blog.csdn.net/weixin_45253622/article/details/114433601

Tomcat管理页面弱口令页面Getshell

Tomcat安装完成后,点击页面的 Manager App 处会弹出输入用户名和密码的认证框。
在这里插入图片描述
我们也可以直接访问:http://127.0.0.1:8080/manager/html 来访问该管理页面。

但是默认情况下,该页面只允许 tomcat 本机访问,其他主机访问时会显示403。
这时,只需要修改 webapps\manager\META-INF\context.xml 文件,注释下如下行即可。

在这里插入图片描述
此时,需要我们输入用户名和密码进行登录。我们可以尝试一下该页面常见的几个弱口令:

用户名:admin tomcat manager
密码:admin 123456 tomcat s3cret manager admin123

该页面的认证账户和密码存在于 Tomcat\conf\tomcat-users.xml ,如下:

在这里插入图片描述

10.限制服务器平台信息泄漏(高危)

限制服务器平台信息泄漏服务配置

描述

限制服务器平台信息泄漏会使攻击者更难确定哪些漏洞会影响服务器平台。
在这里插入图片描述

Tomcat报错页面泄漏Apache Tomcat/7.0.68相关版本号信息,是攻击者攻击的途径之一。因此实际当中建议去掉版本号信息。

加固建议

windows

1、进入到tomcat/lib目录下,用电脑自带解压软件打开catalina.jar 进入到\org\apache\catalina\util目录下

在这里插入图片描述

2、编辑ServerInfo.properties文件,编辑最后三行,去掉版本号等信息
在这里插入图片描述
在这里插入图片描述

3、改完后自动跳出提示,点击“是”自动更新catalina.jar重新打包。

此节内容来自:https://blog.csdn.net/qq_34823218/article/details/108228280

操作时建议做好记录或备份

linux

  1. 进入tomcat的lib目录找到catalina.jar文件
    在这里插入图片描述

  2. unzip catalina.jar之后会多出两个文件夹

在这里插入图片描述

  1. 进入org/apache/catalina/util 编辑配置文件ServerInfo.properties

在这里插入图片描述
在这里插入图片描述

  1. 修改为

server.info=Apache Tomcat

server.number=0.0.0.0

server.built=Nov 7 2016 20:05:27 UTC
在这里插入图片描述

  1. 将修改后的信息压缩回jar包

cd /tomcat/lib

jar uvf catalina.jar org/apache/catalina/util/ServerInfo.properties

在这里插入图片描述

  1. 重启tomcat

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/602815.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PCL点云处理之三维凸包点提取与凸包模型生成,分别保存到PCD与PLY文件(一百七十一)

PCL点云处理之三维凸包点提取与凸包模型生成,分别保存到PCD与PLY文件(一百七十一) 一、算法介绍二、算法实现1.代码2.结果总结一、算法介绍 现给定一块点云,需要实现下面两个功能开发 (1)获取点云的三维凸包点,保存至PCD格式的文件中 (2)获取点云的三维凸包模型,保存…

华为OD机试真题B卷 Java 实现【报数游戏】,附详细解题思路

一、题目描述 100个人围成一圈&#xff0c;每个人有一个编码&#xff0c;编号从1开始到100。他们从1开始依次报数&#xff0c;报到为M的人自动退出圈圈&#xff0c;然后下一个人接着从1开始报数&#xff0c;直到剩余的人数小于M。请问最后剩余的人在原先的编号为多少&#xff…

Netty核心源码剖析(一)

准备工作 将Netty的源码包netty-all-4.1.20.Final-sources.jar添加到项目中; 在io.netty.example包下,有很多Netty源码案例,可以用来分析! 1.Netty启动过程源码剖析 1>.将io.netty.exampler.echo包下的文件复制到当前项目的其他目录中; 2>.EchoServer.java /*** Ec…

建立第一个react页面

<body><!-- 准备一个容器 --><div id"test"></div><!-- 必须在周边库之前引入核心库 --><script type"text/javascript"src"./js/react.development.js"></script><!-- 引入周边库 --><scr…

实战项目!上位机与PLC通讯

大家好&#xff0c;我是华山自控编程朱老师&#xff0c;今天给大家介绍下我之前设计的入门项目——工件正反面识别及角度测试系统 系统功能 首先&#xff0c;系统的功能包括识别工件正反面&#xff0c;测试工件旋转角度。这些任务是由PLC来控制工件传送、启动拍照以及上位机。…

张小飞的Java之路——第四十三章——字符流

写在前面&#xff1a; 视频是什么东西&#xff0c;有看文档精彩吗&#xff1f; 视频是什么东西&#xff0c;有看文档速度快吗&#xff1f; 视频是什么东西&#xff0c;有看文档效率高吗&#xff1f; 诸小亮&#xff1a;接下来我们学习——字符流 张小飞&#xff1a;刚才的…

第二十三篇、基于Arduino uno,控制RGB灯亮灭——结果导向

0、结果 说明&#xff1a;RGB灯亮红色&#xff0c;一秒钟闪烁一次&#xff0c;可以很方便的更改灯的颜色&#xff0c;如果是你想要的&#xff0c;可以接着往下看。 1、外观 说明&#xff1a;RGB灯有共阴极的&#xff0c;也有共阳极的&#xff0c;从外观上是看不出来的&#…

C++ 学习 ::【基础篇:12】:C++ 类的基本成员函数:构造函数基本的定义与调用 |(无参构造与有参构造及缺省参数式构造)

本系列 C 相关文章 仅为笔者学习笔记记录&#xff0c;用自己的理解记录学习&#xff01;C 学习系列将分为三个阶段&#xff1a;基础篇、STL 篇、高阶数据结构与算法篇&#xff0c;相关重点内容如下&#xff1a; 基础篇&#xff1a;类与对象&#xff08;涉及C的三大特性等&#…

MySQL - 读写分离、一主一从、双主双从

文章目录 读写分离一、介绍二、一主一从2.1 原理2.2 服务器准备2.3 一主一从读写分离2.3.1 MyCat 配置2.3.1.1 schema.xml2.3.1.2 server.xml配置 三、双主双从3.1 双主双从介绍3.2 服务器准备3.3 双主双从读写分离3.3.1 主库配置3.3.1.1 211主库配置3.3.1.2 213主库配置 3.3.2…

rknn ffmpeg硬解码环境配置以及调用代码

查看rk3588系统信息 cat /proc/version 本编译在 Debain/ubuntu20.04 这两家板子上编译成功。 安装依赖 sudo apt-get install libx264-dev sudo apt-get install libfaac-dev sudo apt-get install libmp3lame-dev sudo apt-get install libtheora-dev sud…

综合能效管理:全面助力企业节能降耗 86型双联明装墙插面板智选套装上市

能源的综合利用效率主要体现在安全性、节能性及经济性方面。随着物联网智能技术的发展&#xff0c;能源监测与安全监控管理不仅面向能源生产、存储、传输、配送、运用环节&#xff0c;还需要更广泛地、深入地涵盖到分布式能源节点的能源使用消耗的全过程&#xff0c;基于对用户…

官宣代言人王一博,老板电器为打开厨电增量市场提供新思路

文丨智能相对论 作者丨佘凯文 最近两年&#xff0c;全球都处于一个经济结构调整的时期&#xff0c;许多行业深受影响。像国内厨电行业&#xff0c;在诸多因素影响下&#xff0c;就迈向了稳定发展的新常态。 与此同时&#xff0c;行业内部竞争也开始发生改变&#xff0c;从过…

自学黑客(网络安全),一般人我劝你还是算了吧(自学网络安全学习路线--第一章 网络协议基础 )

一、自学网络安全学习的误区和陷阱 1.不要试图先成为一名程序员&#xff08;以编程为基础的学习&#xff09;再开始学习 我在之前的回答中&#xff0c;我都一再强调不要以编程为基础再开始学习网络安全&#xff0c;一般来说&#xff0c;学习编程不但学习周期长&#xff0c;而且…

5月面试碰壁15次,我哭了....

3年测试经验原来什么都不是&#xff0c;只是给你的简历上画了一笔&#xff0c;一直觉得经验多&#xff0c;无论在哪都能找到满意的工作&#xff0c;但是现实却是给我打了一个大巴掌&#xff01;事后也不会给糖的那种... 先说一下自己的个人情况&#xff0c;普通二本计算机专业…

FastChat(小羊驼模型)部署体验

简介 前段时间&#xff0c;斯坦福发布了Alpaca&#xff0c;是由Meta的LLaMA 7B微调而来&#xff0c;仅用了52k数据&#xff0c;性能可以与GPT-3.5匹敌。 FastChat集成了Vicuna、Koala、alpaca、llama等开源模型&#xff0c;其中Vicuna号称能够达到gpt-4的90%的质量&#xff0…

Java基础(项目1)——项目设计分层 dao + service + test +ui + exception + log + util

目录 引出DAO层---和数据库交互1.通过IO流存储到dat文件2.通过JDBC存储到数据库【测试】用junit进行测试&#xff1a;Test注解 Service层---处理业务1.项目设计分层初步2.service处理业务相关3.和UI层以及dao层进行交互 UI层界面---控制台&#xff0c;单例模式1.创建单例的方法…

牛客-【237题】算法基础精选题单

2023年06月02日更新 NOIP2007 字符串的展开NOIP2009 多项式输出NOIP2010 机器翻译 NOIP2007 字符串的展开 第一道题目花费的时间是最多的&#xff0c;还wa了几次 需要特别注意的一个特殊情况时 1-a 这个时候a的ASCII是大于1的&#xff0c;需要满足的一个条件是’-前后的符号属…

Bugku 本地管理员

打开链接 F12查看源码&#xff0c;发现了一个base64字符串 解码得到test123&#xff0c;猜测是密码 输入用户admin&#xff0c;密码test123 尝试登录&#xff0c;发现不行 要求似乎只允许本地访问&#xff0c;于是使用bp抓包改包后重发 在请求头加上 x-forwarded-for: 127.0…

Unity中影响性能的因素

原文链接&#xff1a;https://blog.csdn.net/Mq110m/article/details/130435557 Unity中的渲染优化 移动平台的特点 PC平台相比&#xff0c;移动平台上的GPU架构有很大的不同。由于处理资源等条件的限制&#xff0c;移动设备上的GPU架构专注于尽可能使用更小的带宽和功能&am…

【高数+复变函数】Laplace变换的性质

文章目录 【高数复变函数】Laplace变换的性质一、性质1. 线性性质2. 微分性质3. 像函数的微分性质4. 积分性质5. 象函数的积分性质6. 位移性质7. 延迟性质 【高数复变函数】Laplace变换的性质 通过上一节【高数复变函数】Laplace变换的学习&#xff0c;我们知道了Laplace的基本…