jsp页面安全问题

在做SSI架构的项目,其中有大量的jsp页面,关于jsp的安全性问题,主要体现在web工作目录的WEB-INF文件夹下,可以将页面保存在WEB-INF文件下,这样用户就不能访问该页面了。它为什么能体现安全性能,就好比小偷要偷东西,但是他根本看不到我有的东西,他肯定偷不成功。因此将jsp页面保存在WEB-INF文件下,可以提高页面的安全性。

但是放到该文件夹下后,可能会出现我们要访问的时候却也无法访问了,查了相关资料了解到,在Structs中每一个跳转都是通过一个action来处理的,处理完后forward到相对地址。如果想不通过action处理跳转,而是直接让WEB-INF/a.jsp跳转到WEB-INF/b.jsp页面,则使用相对地址/b.jsp,绝对地址/WEB-INF/b.jsp或者<%=request.getContext()=%>/WEB-INF/b.jsp,均跳转不成功,这是因为安全性在搞怪,放到WEB-INF文件下web容器是对外不可见的,我们看不到他的跳转路径,所以直接跳转不行,需要间接跳转,可要通过structs的action,他的跳转是一种间接跳转,其跳转地址是在web.xml里面配好的,访问的人看不到,具有安全性。如果没有structs难道就不能间接跳转,jsp页面就没有安全保障了吗?答案是否定的,因为structs的action的本质 还是一个servlet,所以可以通过servlet来做。

先在web.xml里面配置servlet和servlet mapping:

<servlet>

   <servlet-name>goto</servlet-name>

   <jsp-file>/WEB-INF/jsp/test.jsp</jsp-file>--要跳转到的页面
  </servlet>
  <servlet-mapping>
   <servlet-name>goto</servlet-name>
   <url-pattern>/test</url-pattern>
  </servlet-mapping>

配置好了之后在jsp页面里用a就可以跳转了<a href="/工程名/test">测试页面跳转</a>--这里一定要“/工程名/test”

  通过servlet跳转还是比较麻烦了,但是这样能保证JSP页面的安全性,想两全其美是比较难的了。

当然如果安全要求不高,那就可以做成很简单的了,直接把所有的jsp页面全部放在webRoot底下,在WebRoot下页面用户可以直接输入地址访问。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值