本文目录一览:
- 1、eclipse启动tomcat时,报Exception starting filter xssFilter,求大神帮忙
- 2、如何在tomcat 中设置X-Frame-Option。 是tomcat!!!
- 3、怎么防止别人通过tomcat端口攻击
- 4、tomcat回调过滤器的dofilter方法怎么理解
- 5、Apache TomcatHTTP响应消息头泄露信息的处理
- 6、使用springboot怎么添加一个filter过滤器
eclipse启动tomcat时,报Exception starting filter xssFilter,求大神帮忙
说明你的tomcat已经启动了(一般都是默认开机启动的,除非你在系统服务里面设为手动启动),不用在eclipse里面再启动了,如果要在eclipse里面启动,要先停止,再启动,不过这是多此一举的!
如何在tomcat 中设置X-Frame-Option。 是tomcat!!!
缺少X-Frame-Options头的解决办法
在tomcat下的conf里的web.xml中增加以下过滤器
filter
filter-namehttpHeaderSecurity/filter-name
filter-classorg.apache.catalina.filters.HttpHeaderSecurityFilter/filter-class
init-param
param-nameantiClickJackingEnabled/param-name
param-valuetrue/param-value
/init-param
init-param
param-nameantiClickJackingOption/param-name
param-valueSAMEORIGIN/param-value
/init-param
async-supportedtrue/async-supported
/filter
filter-mapping
filter-namehttpHeaderSecurity/filter-name
url-pattern/*/url-pattern
/filter-mapping
怎么防止别人通过tomcat端口攻击
你指的攻击是大量不正常的访问吗,这个可以通过防火墙来过滤,如果是渗透的话,就要从代码上入手了
tomcat回调过滤器的dofilter方法怎么理解
你的web.xml中少了一部配置吧,调用过滤器的时候不是直接访问这个servlet,而是在你访问其他进行业务处理的servlet时自动调用的
Apache TomcatHTTP响应消息头泄露信息的处理
一、如何查看HTTP响应消息头
Windows/Linux下使用curl小工具可获取响应头信息。Linux发行版光盘中一般都自带curl包,只要安装即可;Windows可从网站下载应版本,无需安装即可直接运行。
当然,也可用telnet命令HEAD方法直接获取响应头信息,如
$ telnet 80
输入以下命令(其中,“HEAD”必须大写)并按两次回车即能获取响应头信息。
HEAD / HTTP/1.0
在浏览器中也可以查看响应消息头,例如IE通过打开“开发人员工具”功能进行分类查看,Google
Chrome可通过打开“审查元素”功能来查看,firefox里需要安装上firebug这个插件。当然,众多的HTTP抓包分析工具(如HttpWatch、Fiddler2)也具备这个功能。
这里以curl小工具为例。
示例:360搜索网站
$ curl -I
HTTP/1.1 302 Moved Temporarily
Date: Sun, 05 Apr 2015 08:10:37 GMT
Content-Type: text/html
Content-Length: 154
Connection: keep-alive
Location:
该网站重定向至,继续跟踪
$ curl -I
HTTP/1.1 200 OK
Date: Sun, 05 Apr 2015 08:11:12 GMT
Content-Type: text/html
Connection: close
Vary: Accept-Encoding
Set-Cookie:
GUID=DazCGzqNk4eim3qSM6w7RMLQeTaQ6WbBYM0SxmC0+lVAiVnzCpxKhihMu6boXYSBZAYymholrHXSVpYClYE=|a|1428221472.4039;expires=Tue,
04-Apr-17 08:11:12 GMT;path=/
Set-Cookie: _S=6ooi1qd05hbnhp59r64v0dohb6; expires=Sun, 05-Apr-2015 08:21:12 GMT; path=/
Expires: Thu, 19 Nov 1981 08:52:00 GMT
Cache-Control: no-store, no-cache, must-revalidate, post-check=0, pre-check=0
Pragma: no-cache
Set-Cookie: QiHooGUID=A64C6CE468ACF3992B3A429E5E92EE6D.1428221472406; expires=Tue, 04-Apr-2017 08:11:12 GMT; path=/
Set-Cookie: QiHooGUID=D441EB2BD049F9D4AD196BA8977E9217.1428221472406; expires=Tue, 04-Apr-2017 08:11:12 GMT; path=/
Set-Cookie: so_paper_xmon=0; expires=Sat, 04-Apr-2015 08:11:12 GMT; path=/
可以看到,已经隐藏了Server头,Set-Cookie头中有用的信息是QiHooGUID,显然进行过修改。已经无法从头信息中分析猜测服务器软件部署情况。
$ curl -k -I
HTTP/1.1 200 OK
Cache-Control: private, max-age=604800
Expires: Sat, 28 Mar 2015 05:05:05 GMT
Date: Sat, 28 Mar 2015 05:05:05 GMT
Refresh: 0;URL=
Content-Type: text/html; charset=ISO-8859-1
Content-Length: 234
X-Content-Type-Options: nosniff
X-Frame-Options: SAMEORIGIN
X-XSS-Protection: 1; mode=block
Server: GSE
Alternate-Protocol: 443:quic,p=0.5
利用Tomcat建立的网站就显示了一些信息:
Server: Apache-Coyote/1.1
如果是IIS服务器,还可能会有X-Powered-By, X-AspNet-Version, and X-AspNetMvc-Version等信息。
Server: Microsoft-IIS/6.0
Server: Microsoft-IIS/7.0
Server Microsoft-IIS/7.5
X-Powered-By: ASP.NET
X-AspNet-Version 4.0.303319
X-AspNet-Version: 2.0.50727
X-AspNet-Version: 1.1.4322
X-AspNetMvc-Version: 1.0
X-AspNetMvc-Version 3.0
使用springboot怎么添加一个filter过滤器
在实际的web应用程序中,经常需要在请求(request)外面增加包装用于:记录调用日志、排除有XSS威胁的字符、执行权限验证等等。除了上述提到的之外,Spring Boot自动添加了OrderedCharacterEncodingFilter和HiddenHttpMethodFilter,并且我们在自己的项目中还可以增加别的过滤器。
Spring Boot、Spring Web和Spring MVC等其他框架,都提供了很多servlet 过滤器可使用,我们需要在配置文件中定义这些过滤器为bean对象。现在假设我们的应用程序运行在一台负载均衡代理服务器后方,因此需要将代理服务器发来的请求包含的IP地址转换成真正的用户IP。Tomcat 8 提供了对应的过滤器:RemoteIpFilter。通过将RemoteFilter这个过滤器加入过滤器调用链即可使用它。
How Do
一般在写简单的例子时,不需要单独定义配置文件,只需要将对应的bean对象定义在Application类中即可。正式的项目中一般会有单独的web配置文件,我们在项目的com.test.bookpub(与BookpubApplication.java同级)下建立WebConfiguration.java文件,并用@Configuration注解修饰。
package com.test.bookpub;
import org.apache.catalina.filters.RemoteIpFilter;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class WebApplication {
@Bean
public RemoteIpFilter remoteIpFilter() {
return new RemoteIpFilter();
}
}
通过mvn spring-boot:run启动项目,可以在终端中看到如下的输出信息,证明RemoteIPFilter已经添加成功。
RemoteIPFilter
分析
项目的主类——BookPubApplication,可以看到由@SpringBootApplication注解修饰,这包含了@ComponentScan、@Configuration和@EnableAutoConfiguration注解。在Spring Boot的自动配置、Command-line Runner一文中曾对这个三个注解做详细解释,@ComponentScan让Spring Boot扫描到WebConfiguration类并把它加入到程序上下文中,因此,我们在WebApplication中定义的Bean就跟在BookPubApplication中定义一样。
方法@Bean public RemoteIpFilter remoteIpFilter() { ... }返回一个RemoteIPFilter类的spring bean。当Spring Boot监测到有javax.servlet.Filter的bean时就会自动加入过滤器调用链。从上图中还可以看到,该Spring Boot项目一次加入了这几个过滤器:characterEncodingFilter(用于处理编码问题)、hiddenHttpMethodFilter(隐藏HTTP函数)、httpPutFormContentFilter、requestContextFilter(请求上下文),以及我们刚才自定义的RemoteIPFilter。