2

【error】漏洞修复记录

 2 years ago
source link: https://holydogs.github.io/2021/12/26/%E3%80%90error%E3%80%91%E6%BC%8F%E6%B4%9E%E4%BF%AE%E5%A4%8D%E8%AE%B0%E5%BD%95/
Go to the source link to view the article. You can view the picture content, updated content and better typesetting reading experience. If the link is broken, please click the button below to view the snapshot at that time.

1、nginx使用OPTIONS方式请求报错,暴露nginx版本

nginx配置里加上

server_tokens off;

即可隐藏nginx版本

2、tomcat404、504等等报错时,暴露tomcat版本号

web.xml加上

<error-page>
    <error-code>404</error-code>
    <location>/404.html</location>
</error-page>

然后在该项目根目录放入404页面即可

3、druid监控平台页面暴露至外网

web.xml中原配置如下

<servlet>
  <servlet-name>DruidStatView</servlet-name>
  <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
</servlet>
<servlet-mapping>
  <servlet-name>DruidStatView</servlet-name>
  <url-pattern>/druid/*</url-pattern>
</servlet-mapping>

修改增加ip白名单限制以及账号密码登录限制才可访问

<servlet>
  <servlet-name>DruidStatView</servlet-name>
  <servlet-class>com.alibaba.druid.support.http.StatViewServlet</servlet-class>
  <init-param>
      <!-- 白名单 -->
      <param-name>allow</param-name>
      <param-value>127.0.0.1</param-value>
  </init-param>
  <init-param>
    <!-- 账号 -->
    <param-name>loginUsername</param-name>
    <param-value>admin</param-value>
  </init-param>
  <init-param>
    <!-- 密码 -->
    <param-name>loginPassword</param-name>
    <param-value>mydruid</param-value>
  </init-param>
</servlet>
<servlet-mapping>
  <servlet-name>DruidStatView</servlet-name>
  <url-pattern>/druid/*</url-pattern>
</servlet-mapping>

4、某些cookie没有设置httponly或者secure属性

增加过滤器,拦截请求,设置cookie属性

package com.zjasm.filter;  

import javax.servlet.Filter;  
import javax.servlet.FilterChain;  
import javax.servlet.FilterConfig;  
import javax.servlet.ServletException;  
import javax.servlet.ServletRequest;  
import javax.servlet.ServletResponse;  
import javax.servlet.annotation.WebFilter;  
import javax.servlet.http.Cookie;  
import javax.servlet.http.HttpServletRequest;  
import javax.servlet.http.HttpServletResponse;  
import java.io.IOException;  

/**  
* Servlet Filter implementation class CookieFilter  
*  
* 解决 Cookie未设置HttpOnly && Cookie未设置Secure标识 问题  
*  
*/  
@WebFilter(filterName="cookieFilter",urlPatterns={"/*"})  
public class CookieFilter implements Filter{  
/**  
* Default constructor.  
*/  
public CookieFilter() {  
// TODO Auto-generated constructor stub  
}  

/**  
* @see Filter#destroy()  
*/  
public void destroy() {  
// TODO Auto-generated method stub  
}  

/**  
* @see Filter#doFilter(ServletRequest, ServletResponse, FilterChain)  
*/  
public void doFilter(ServletRequest request, ServletResponse response, FilterChain chain) throws IOException, ServletException {  
HttpServletRequest req = (HttpServletRequest)request;  
HttpServletResponse resp = (HttpServletResponse)response;  
Cookie[] cookies = req.getCookies();  
if (cookies != null) {  
for (Cookie cookie : cookies) {  
String value = cookie.getValue();  
StringBuilder builder = new StringBuilder();  
builder.append(cookie.getName()+"="+value+";");  
builder.append("Secure;");//Cookie设置Secure标识  
builder.append("HttpOnly;");//Cookie设置HttpOnly  
// Calendar cal = Calendar.getInstance();  
// cal.add(Calendar.HOUR, 1);  
// Date date = cal.getTime();  
// Locale locale = Locale.CHINA;  
// SimpleDateFormat sdf = new SimpleDateFormat("dd-MM-yyyy HH:mm:ss",locale);  
// builder.append("Expires="+sdf.format(date));  
resp.addHeader("Set-Cookie", builder.toString());  
resp.addHeader("x-frame-options","SAMEORIGIN");//Header配置X-Frame-Options  
}  

}  
chain.doFilter(request, response);  
}  

/**  
* @see Filter#init(FilterConfig)  
*/  
public void init(FilterConfig fConfig) throws ServletException {  
// TODO Auto-generated method stub  
}  

}

5、nginx404页面添加

如404为tomcat抛出,经过nginx需要配置

proxy_intercept_errors on;

404页面配置,root代表nginx目录根目录路径,404页面放在html目录下

error_page 404 /404.html;

location = /404.html {
  root html;
}

6、tomcat启动环境异常

打开catalina.bat(windows环境),在setlocal下设置jdk环境

set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_91
set JRE_HOME=C:\Program Files\Java\jdk1.8.0_91\jre

7、tomcat运行内存不足

在“rem —– Execute The Requested Command ———————-”下加入

_JAVA_OPTS=”-server -Xms800m -Xmx800m -XXNewSize=256M -XX:PermSize=256M -XX:MaxNewSize=512m -XX:MaxPermSize=512m”_



About Joyk


Aggregate valuable and interesting links.
Joyk means Joy of geeK