小编Emm*_*ini的帖子

目录遍历安全问题

我有一个Java webapp,它容易受到URL编码的目录横向(又名路径横向)攻击.经过身份验证后:

  • 如果我点击http:// localhost:8080/Web/WEB-INF/web.xml,我得到404(很好)
  • 如果我点击http:// localhost:8080/Web /%c0%ae/WEB-INF/web.xml,我可以读取文件(显然不是很好)

根据Servlet规范,WEB-INF文件夹不应该公开访问,但在某种程度上它适用于这种情况.我正在使用带有Java 1.4,Spring Security 2.0.5和Struts 1.3的Websphere 5.1.从我读到的,它似乎与编码有关,%c0%ae是'.' (点)UTF-8.

我在不同的webapp上尝试了相同的东西,它运行在不同的环境中(Tomcat 6与Java 7,Spring Security 3和Spring MVC),我无法重现这个问题.第二个webapp有一个过滤器强制编码UTF-8(org.springframework.web.filter.CharacterEncodingFilter)中的页面,所以我在第一个webapp上尝试了相同的配置,但它没有做到这一点.有任何想法吗?

谢谢.

java security

8
推荐指数
1
解决办法
5193
查看次数

Spring Security ACL的性能

我目前正在测试 Spring Security 的访问控制列表,在阅读了关键概念后,有件事引起了我的注意:有一个表 (ACL_ENTRY) 存储每个主体的域对象的每个实例的单独权限(假设该主体有权访问该实例)。在具有大量用户和大量域对象的大型系统上,我们可以很容易地想象该表中会有大量记录,这些记录可能会被频繁查询(当加载、创建、更新域对象的实例时) , ETC。)。
现在考虑到这一点,我想知道性能会受到怎样的影响。有人有这方面的经验吗?任何反馈?

java performance spring-security

6
推荐指数
1
解决办法
2469
查看次数

Scala:通过异常处理组合期货结果

我是Scala的Future的新手,我还没有找到解决问题的方法。我正在尝试实现以下目标(总体描述:尝试获取酒店列表的来宾列表,分别查询每个酒店):

  1. 对另一个API进行n次调用,每次调用都超时
  2. 合并所有结果(将列表列表转换为包含所有元素的列表)
  3. 如果单个呼叫失败,请记录错误并返回一个空列表(基本上,在这种情况下,如果我得到部分结果而不是根本没有结果会更好)
  4. 理想情况下,如果单个呼叫失败,请在等待一段时间后重试x次,最终失败并像没有重试一样处理错误

这是我的代码。HotelReservation代表我要调用的外部API。

import com.typesafe.scalalogging.slf4j.Logging

import scala.concurrent._, ExecutionContext.Implicits.global
import scala.util.{Failure, Success}

case class Guest(name: String, country: String)

trait HotelReservation extends Logging {

  def getGuests(id: Int): Future[List[Guest]] = Future {
    logger.debug(s"getting guests for id $id")
    id match {
      case 1 => List(new Guest("John", "canada"))
      case 2 => List(new Guest("Harry", "uk"), new Guest("Peter", "canada"))
      case 3 => {
        Thread.sleep(4000)
        List(new Guest("Harry", "austriala"))
      }
      case _ => throw new IllegalArgumentException("unknown hotel id")
    }
  }
}

object HotelReservationImpl extends …
Run Code Online (Sandbox Code Playgroud)

concurrency scala

2
推荐指数
1
解决办法
342
查看次数