我有一个Java webapp,它容易受到URL编码的目录横向(又名路径横向)攻击.经过身份验证后:
根据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上尝试了相同的配置,但它没有做到这一点.有任何想法吗?
谢谢.
我目前正在测试 Spring Security 的访问控制列表,在阅读了关键概念后,有件事引起了我的注意:有一个表 (ACL_ENTRY) 存储每个主体的域对象的每个实例的单独权限(假设该主体有权访问该实例)。在具有大量用户和大量域对象的大型系统上,我们可以很容易地想象该表中会有大量记录,这些记录可能会被频繁查询(当加载、创建、更新域对象的实例时) , ETC。)。
现在考虑到这一点,我想知道性能会受到怎样的影响。有人有这方面的经验吗?任何反馈?
我是Scala的Future的新手,我还没有找到解决问题的方法。我正在尝试实现以下目标(总体描述:尝试获取酒店列表的来宾列表,分别查询每个酒店):
这是我的代码。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)