關於解決綠盟科技安全評估報告中的web漏洞
阿新 • • 發佈:2020-08-07
關於解決綠盟科技安全評估報告中的web漏洞
3.1.1.Apache Tomcat 檔案包含漏洞(CVE-2020-1938)
方式一:升級tomcat版本,
對於springboot專案,需要更換內建tomcat
更換步驟:
1 進入springboot共成的parent可以看到tomcat的版本
2 在自己的pom檔案裡覆蓋掉內建的tomcat版本
::: details 點選檢視程式碼
<tomcat.version>9.0.31</tomcat.version> <dependency> <groupId>org.apache.tomcat.embed</groupId> <artifactId>tomcat-embed-core</artifactId> <version>${tomcat.version}</version> </dependency> <dependency> <groupId>org.apache.tomcat</groupId> <artifactId>tomcat-juli</artifactId> <version>${tomcat.version}</version> </dependency> <!--排除依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> <exclusions> <exclusion> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-tomcat</artifactId> </exclusion> </exclusions> </dependency>
:::
效果:
3 啟動專案看一下
沒有報錯,修改成功
若不需要使用Tomcat AJP協議,可直接關閉AJP Connector,或將其監聽地址改為僅監聽本機localhost。
具體操作:
(1)編輯 <CATALINA_BASE>/conf/server.xml,找到如下行(<CATALINA_BASE> 為 Tomcat 的工作目錄):
<Connector port="8009"protocol="AJP/1.3" redirectPort="8443" />
(2)將此行註釋掉(也可刪掉該行):
<!--<Connectorport="8009" protocol="AJP/1.3"redirectPort="8443" />-->
(3)儲存後需重新啟動Tomcat,規則方可生效。
3.1.2.檢測到會話cookie中缺少HttpOnly屬性
由於在報告中明確的指出了是哪個介面 找到介面新增如下配置
cookie.setHttpOnly(true);
3.1.3.點選劫持:X-Frame-Options未配置
tomcat配置
進入tomcat目錄下的conf,找到web.xml配置檔案,搜尋httpHeaderSecurity
找到如下配置:
修改後結果:
::: details 點選檢視程式碼
<filter>
<filter-name>httpHeaderSecurity</filter-name>
<filter-class>org.apache.catalina.filters.HttpHeaderSecurityFilter</filter-class>
<async-supported>true</async-supported>
<init-param>
<param-name>antiClickJackingEnabled</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>antiClickJackingOption</param-name>
<param-value>SAMEORIGIN</param-value>
</init-param>
</filter>
:::
修改之後,重啟專案
瀏覽器訪問介面可以看到:
即配置成功
這裡有一個問題
配置http的響應頭資訊:屬性名X-Frame-Options。
可以配置的引數有兩個:
DENY:瀏覽器拒絕當前頁面載入任何Frame頁面。
SAMEORIGIN:頁面只能載入入同源域名下的頁面。
我配置的是第二個 但是訪問介面卻是第一個,不知道是什麼原因。
springBoot專案
對於springBoot專案,可以使用新增過濾器的方式解決
::: details 點選檢視程式碼
/**
* @Description: 解決 點選劫持:X-Frame-Options未配置
* @Param:
* @return:
* @Date: 2020/7/24
*/
@Component
public class CookieFrameFilter implements Filter {
@Override
public void init(FilterConfig filterConfig) throws ServletException {
}
@Override
public void doFilter(ServletRequest request, ServletResponse response,
FilterChain filterChain) throws IOException, ServletException {
HttpServletRequest req = (HttpServletRequest) request;
HttpServletResponse resp = (HttpServletResponse) response;
resp.addHeader("x-frame-options", "SAMEORIGIN");
filterChain.doFilter(req, resp);
}
@Override
public void destroy() {
}
}
:::
修改後重啟專案
配置成功
注意需要新增@Component
註解,使改過濾器交由spring管理,否則不生效