这是我参与2022首次更文挑战的第24天,活动详情查看:2022首次更文挑战
配置安全
- 安装Tomcat后,删除webapps目录下的文件,禁用Tomcat管理界面
- 注释或者删除tomcat-users.xml文件内用户的权限
- 更改或者禁用Tomcat监听的指令:
- 在Tomcat的server.xml中定义了关闭Tomcat实例监听的端口指令,默认端口是8005
- 此时,只要听过telnet连接上该端口后,通过默认的SHUTDOWN指令就可以关闭Tomcat实例.这里实例关闭了,但是进程是存在的
- 所以需要修改Tomcat监听的指令:
- 方案一 : 更改默认的端口号和指令
<Server port="8886" shudown="tomcat_shutdown">- 方案二 : 禁用Tomcat监听关闭实例指令的端口
<Server port="-1" shutdown="SHUTDOWN">
- 自定义错误页面:
- 在webapps/ROOT目录下自定义错误页面404.html和500.html等
- 然后在tomcat/conf/web.xml配置错误页面
<error-page> <error-code>404</error-code> <location>404.html</location> </error-page> <error-page> <error-code>500</error-code> <location>500.html</location> </error-page>
应用安全
- 在大部分Web应用中,特别是后台应用系统,都会实现安全管理的权限模块,用于控制系统的安全访问
- 应用安全包含两个部分:
- 认证:
- 登录
- 单点登录
- 授权:
- 功能权限
- 数据权限
- 认证:
- 对于业务系统而言,可以自定义一套业务系统的权限模块,也可以直接使用一些功能完善的安全框架,集成到web应用中,比如SpringSecurity和Apache Shiro等
传输安全
HTTPS协议
- HTTPS: 超文本传输安全协议Hypertext Transfer Protocol Secure
- HTTPS协议是一种网络安全传输协议
- HTTPS协议是在HTTP协议的基础上增加SSL或者TLS进行数据加密,保护交换的数据不被泄漏和窃取
SSL协议
- SSL和TLS是用于网络通信安全的加密协议,允许在客户端和服务器之间通过安全链接进行通信
- SSL协议具有以下三个特性:
- 保密: 通过SSL链接传输的数据加密
- 鉴别: 通信双方的身份鉴别,至少有一方需要进行验证.通常是可选的
- 完整性: 传输数据的完整性检查
- 从性能角度而言,加密解密是一项具有昂贵计算的处理,因此,不需要将整个Web应用都采用SSL链接.在实际部署的过程中,只需要选择有必要进行安全加密的页面,也就是存在敏感信息传输的页面采用SSL通信
HTTPS和HTTP比较
- HTTPS协议需要到证书颁发机构CA申请SSL证书,然后和域名进行绑定 . HTTP不需要申请证书
- HTTPS是具有SSL加密传输安全性的传输协议,对数据的传输进行加密,相当于是HTTP的升级版 . HTTP是超文本传输协议,是应用层的信息传输协议
- HTTPS和HTTP采用完全不同的连接方式,使用的默认端口不一样 . HTTPS使用的8443端口 . HTTP使用的是8080端口
- HTTPS协议是由SSL+HTTP协议构建的可以进行加密传输,身份认证的网络协议,比HTTP协议安全 . HTTP协议是无状态的连接简单的协议
HTTP协议的优点
- 提高网站排名,有利于SEO
- 隐私信息加密,防止流量劫持
- 浏览器受信任
Tomcat配置HTTPS
- 生成密钥库文件: 输入对应的密钥库密码和密钥口令等信息之后,会在当前文件夹中生成一个密钥库文件
keytool -genkey -alias tomcat -keyalg RSA -keystore tomcatkey.keystore
- 将密钥库文件tomcatkey.keystore拷贝到tomcat/conf目录下
- 在tomcat/conf/server.xml中配置HTTPS协议
<Connector port="8443" protocol="org.apache.coyote.http11.Http11NioProtocol" maxThreads="150" schema="https" SSLEnabled="true">
<SSLHostConfig certificateVerification="false">
<Certificate certificateKeystoreFile="conf/tomcatkey.keystore" certificateKeystorePassword="tomcat" type="RSA"></Certificate>
</SSLHostConfig>
</Connector>
- 通过地址https://localhost:8443访问Tomcat, 使用https协议