基于Tomcat 的WEB Project存在的安全漏洞总结
1 检查工具:Acunetix Web Vulnerability Scanner V9破解版
2 检查漏洞说明结果显示:
2.1 HTML Form Without CSRF Protection
2.2 slow_Http_DoS
2.4 If possible, you should set the HTTPOnly flag for this cookie
如下图:
3 安全漏洞解决办法
3.1 HTML Form Without CSRF Protection 解决方案:
情况说明,CSRF一般发生在表单Login、登录提交时,处理过程大体上可以总结为在Login.jsp页面上随机产生一个字符串,Set到会话Session内自定义的变量,
然后在Form表单内隐藏一个存放此值的input ytpe ="hidden" 的元素,即可:即如下:
*****Login.jsp********
<%@page import="Java.util.UUID"%>
<%
//deal with CSRF
String uuid = UUID.randomUUID().toString().replaceAll("-", "");
request.getSession().setAttribute("randTxt",uuid);
%>
<form id="welcomeAction_login" name="login" action="welcomeAction_login.do" method="POST">
....
<input type="hidden" name="randSesion" value = "<%=request.getSession().getAttribute("randTxt")%>" />
......
</form>
注意:表单提交时Form头处一定要写上:action="welcomeAction_login.do" method="POST",否则会引出其它相关中级的问题
3.2 slow_Http_DoS解决方案:
原理:通过并发连接池进行的慢速读攻击(基于TCP持久时间)等。慢速攻击基于HTTP协议,通过精心的设计和构造,这种特殊的请求包会造成服务器延时,而当服务器负载能力消耗过大即会导致拒绝服务
1 设置Tomcat / server.xml文件 connectiontimeout 值,默认为20000ms,修改为8000ms(Tomcat 自身安全漏洞)
2 设置AJAX的全局timeout时间(默认为30000ms) $.ajaxSetup({timeout:8000});
1 (Tomcat 自身安全漏洞)设置设置Tomcat / web.xml文件:
<session-timeout>30<session-timeout>
<cookie-config>
<secure>true<secure>
<http-only>true<http-only>
</cookie-config>
<session-config>
2 在Login .jsp主页面加入:
response.setHeader("SET-COOKIE", "JSESSIONID=" + sessionid + "; secure ; HttpOnly");
4 ******涉及内容和网站:
1 CSRF科普 http://www.cnblogs.com/hyddd/archive/2009/04/09/1432744.html
2 CSRF一种解决办法:http://jingyan.baidu.com/album/597a0643671e6a312b524305.html
3 set the Secure flag for this cookie: https://www.owasp.org/index.PHP/SecureFlag
4 set the HTTPOnly flag for this cookie: http://coffeesweet.iteye.com/blog/1271822
基于Tomcat 的WEB Project存在的安全漏洞总结的更多相关文章
- 通过 Terracotta实现基于Tomcat的Web应用集群
[转]通过 Terracotta实现基于Tomcat的Web应用集群 博客分类: 企业应用面临的问题 Java&Socket 开源组件的应用 tomcatweb session集群服务器负载均 ...
- JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面
注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...
- 10:基于Tomcat部署Web工程
1创建目录, 2.标识目录java文件,资源文件
- Eclipse整合Tomcat开发Dynamic Web Project环境总结
一.引子 习惯了MyEclipse的你是否曾想过基于Eclipse进行Dynamic Web Project项目开发呢?网上资料颇多,但是实践起来却发现总有这样那样的问题,设计Lucene搜索引擎项目 ...
- JDK和Tomcat环境变量,以及用MyEclipse新建Web Project测试Tomcat Server
[请尊重原创版权,如需引用,请注明来源及地址] 在此之前一直用的Eclipse挺顺手的,今天突然想换MyEclipse试试,不知安装MyEclipse的时候我选错了什么选项,反正JDK和Tomcat的 ...
- 在eclipse中新建Dynamic web project时选择2.5和3.0的区别(里面涉及servlet和tomcat的问题)
1.是指servlet的版本,是2.5的还是3.0的 servlet3.0以后支持异步 2.dynamic web module和对应的TOMCAT 版本 http://blog.sina.com.c ...
- MyEclipse Web Project导入Eclipse Dynamic Web Project,无法部署到tomcat问 题
做作业遇到一个小问题,将MyEclipse Web Project导入到Eclipse中开发.在部署到tomcat时,发现无法发布这个项目. 问题分析: MyEclipse Web Project被识 ...
- Mac 下 Eclipse 添加 Dynamic Web Project 并配置 Tomcat
最近拿到了一个 Dynamic Web Project,我的 Mac 上的 Eclipse 之前没有过这类型的项目,所以导入之后无法正常运行.下面是我记录的如何配置 Eclipse 使之能够运行 Dy ...
- 创建Dynamic Web Project时 显示最新Apache Tomcat 8.0 的方法
创建Dynamic Web Project时 显示最新Apache Tomcat 8.0 等的方法 解决办法如下: 第一步:eclipse菜单help->eclipse marketplac ...
随机推荐
- Python3.x:定时获取页面数据存入数据库
Python3.x:定时获取页面数据存入数据库 #间隔五分钟采集一次数据入库 import pymysql import urllib.request from bs4 import Beautifu ...
- python排序算法实现(冒泡、选择、插入)
python排序算法实现(冒泡.选择.插入) python 从小到大排序 1.冒泡排序: O(n2) s=[3,4,2,5,1,9] #count = 0 for i in range(len(s)) ...
- ubuntu 18.04 64bit如何编译安装内核
1.获取 wget http://mirrors.163.com/kernel/v4.x/linux-4.15.13.tar.gz 2.解压 tar xvf linux-4.15.13.tar.gz ...
- SDOI2018划水记
DAY -1 明天就要走了,今天就怎么也提不起兴趣来做题了.花了一个上午研究如何搞背景动画结果华丽丽失败了,为什么我自己设置的时候动画会在最上层啊(呜呜~~.下午随便打了板子又开始颓废了,然后看生蚝还 ...
- UVa 10054 项链(欧拉回路)
https://vjudge.net/problem/UVA-10054 题意:有一种由彩色珠子连接成的项链.每个珠子的两半由不同颜色组成.相邻两个珠子在接触的地方颜色相同.现在有一些零碎的珠子,需要 ...
- c++ 判断容器是否为空
#include <iostream> #include <vector> #include <string> using namespace std; int m ...
- [osg]osgDB的加载机制,使用3DS插件做参考(转,整理现有osgDB资料)
参考:http://blog.sina.com.cn/s/blog_7cdaf8b60102uzu3.html http://blog.csdn.net/wang15061955806/article ...
- [osgearth]通过API创建一个earth模型
通过API的方式大体需要以下几个步骤: 创建map对象—— 创建影像数据层—— 创建高程数据层—— 将影像数据层以及高程数据层加入到map对象—— 根据前面创建的map对象创建mapNode节点—— ...
- 关于java中ArrayList的快速失败机制的漏洞——使用迭代器循环时删除倒数第二个元素不会报错
一.问题描述 话不多说,先上代码: public static void main(String[] args) throws InterruptedException { List<Strin ...
- 秒转为时分秒格式js
秒转为时分秒格式 function formatSeconds(value) { if(value == undefined) { value = 0; } var second = parseInt ...