1 检查工具:Acunetix Web Vulnerability Scanner V9破解版

2 检查漏洞说明结果显示:

2.1 HTML Form Without CSRF Protection

2.2 slow_Http_DoS

2.3  If possible, you should set the Secure flag for this cookie

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});

3.3  If possible, you should set the Secure flag for this cookie,set the HTTPOnly flag for this cookie解决方案:
1 (Tomcat 自身安全漏洞)设置设置Tomcat / web.xml文件:

<session-config>
        <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存在的安全漏洞总结的更多相关文章

  1. 通过 Terracotta实现基于Tomcat的Web应用集群

    [转]通过 Terracotta实现基于Tomcat的Web应用集群 博客分类: 企业应用面临的问题 Java&Socket 开源组件的应用 tomcatweb session集群服务器负载均 ...

  2. JAVA WEB学习笔记(三):简单的基于Tomcat的Web页面

    注意:每次对Tomcat配置文件进行修改后,必须重启Tomcat 在E盘的DATA文件夹中创建TomcatDemo文件夹,并将Tomcat安装路径下的webapps/ROOT中的WEB-INF文件夹复 ...

  3. 10:基于Tomcat部署Web工程

    1创建目录, 2.标识目录java文件,资源文件

  4. Eclipse整合Tomcat开发Dynamic Web Project环境总结

    一.引子 习惯了MyEclipse的你是否曾想过基于Eclipse进行Dynamic Web Project项目开发呢?网上资料颇多,但是实践起来却发现总有这样那样的问题,设计Lucene搜索引擎项目 ...

  5. JDK和Tomcat环境变量,以及用MyEclipse新建Web Project测试Tomcat Server

    [请尊重原创版权,如需引用,请注明来源及地址] 在此之前一直用的Eclipse挺顺手的,今天突然想换MyEclipse试试,不知安装MyEclipse的时候我选错了什么选项,反正JDK和Tomcat的 ...

  6. 在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 ...

  7. MyEclipse Web Project导入Eclipse Dynamic Web Project,无法部署到tomcat问 题

    做作业遇到一个小问题,将MyEclipse Web Project导入到Eclipse中开发.在部署到tomcat时,发现无法发布这个项目. 问题分析: MyEclipse Web Project被识 ...

  8. Mac 下 Eclipse 添加 Dynamic Web Project 并配置 Tomcat

    最近拿到了一个 Dynamic Web Project,我的 Mac 上的 Eclipse 之前没有过这类型的项目,所以导入之后无法正常运行.下面是我记录的如何配置 Eclipse 使之能够运行 Dy ...

  9. 创建Dynamic Web Project时 显示最新Apache Tomcat 8.0 的方法

    创建Dynamic Web Project时  显示最新Apache Tomcat  8.0 等的方法 解决办法如下: 第一步:eclipse菜单help->eclipse marketplac ...

随机推荐

  1. python中 @property

    考察 Student 类: class Student(object): def __init__(self, name, score): self.name = name self.score = ...

  2. SQL学习笔记四之MySQL数据操作

    阅读目录 一 介绍 二 插入数据INSERT 三 更新数据UPDATE 四 删除数据DELETE 五 查询数据SELECT 六 权限管理 一 介绍 MySQL数据操作: DML =========== ...

  3. Python3.x:基础学习

    Python3.x:基础学习 1,Python有五种标准数据类型 1.数字 2.字符串 3.列表 4.元组 5.字典 (1).数字 数字数据类型存储数字值.当为其分配值时,将创建数字对象. var1 ...

  4. 【软件位置】Linux查看软件安装的位置

    如果我们在Linux 系统上安装了某个软件,我们可以通过如下的三种方式来确定. 一.        Which 命令 Shell 的which 命令可以找出相关命令是否已经在搜索路径中. 如: [ro ...

  5. [Opencv]图像的梯度与边缘检测(转)

    文章来源:https://blog.csdn.net/on2way/article/details/46851451 梯度简单来说就是求导,在图像上表现出来的就是提取图像的边缘(不管是横向的.纵向的. ...

  6. Python学习札记(三十) 面向对象编程 Object Oriented Program 1

    参考:OOP NOTE 1.面向对象编程--Object Oriented Programming,简称OOP,是一种程序设计思想.OOP把对象作为程序的基本单元,一个对象包含了数据和操作数据的函数. ...

  7. nodejs真的是单线程吗?

    [原文] 一.多线程与单线程 像java.python这个可以具有多线程的语言.多线程同步模式是这样的,将cpu分成几个线程,每个线程同步运行. 而node.js采用单线程异步非阻塞模式,也就是说每一 ...

  8. UVa 10534 波浪子序列(快速求LIS)

    https://vjudge.net/problem/UVA-10534 题意:给定一个长度为n的整数序列,求一个最长子序列(不一定连续),使得该序列的长度为2k+1,前k+1个数严格递增,后k+1个 ...

  9. BZOJ 3238 【AHOI2013】 差异

    题目链接:差异 写题时发现这道题当初已经用后缀数组写过了……但是既然学了后缀自动机那就再写一遍吧…… 观察一下题目所给的式子:\[\sum_{1\leqslant i < j \leqslant ...

  10. VGG16提取图像特征 (torch7)

    VGG16提取图像特征 (torch7) VGG16 loadcaffe torch7 下载pretrained model,保存到当前目录下 th> caffemodel_url = 'htt ...