关于WEB开发-jsp的安全性 - 新闻资讯 - 云南小程序开发|云南软件开发|云南网站建设-昆明葵宇信息科技有限公司

159-8711-8523

云南网建设/小程序开发/软件开发

知识

不管是网站,软件还是小程序,都要直接或间接能为您产生价值,我们在追求其视觉表现的同时,更侧重于功能的便捷,营销的便利,运营的高效,让网站成为营销工具,让软件能切实提升企业内部管理水平和效率。优秀的程序为后期升级提供便捷的支持!

您当前位置>首页 » 新闻资讯 » 网站建设 >

关于WEB开发-jsp的安全性

发表时间:2010-3-18

发布人:葵宇科技

浏览次数:29

虽然做了大半年的web开发了,但一直浮于表面,东西会做,但很多原理不通,要想成为技术牛人光会做是远远不行的,因为即使会做但不会讲且不能举一反三,哎,想当年高中数学之所以这么好就是因为高中数学原理我都一清二楚,举一反三,兴手捻来,反而到了现在有点急功近利,急于求成,我这不是倒退了么?我甘心做一个下平庸的人么,答案显然不是,所以从今天起我要做研究生阶段所没有做过的研究,从web开发做起,养成研究的习惯,养成动脑的习惯,崛起吧。。呵呵,遥想了一下当年,哎,往事知多少啊,开始正题啦!

  

  今天就先写一个WEB开发的小心得吧。

  在我做的SSH项目,有大量的jsp页面,在开始做项目的时候,我就只会机械的学别人在struts里面配页面之间的跳转路径,虽然后来知道了struts的原理,了解了跳转的过程,但是真正自己要用到非struts环境底下的页面跳转的时候发现经常跳转报错,无论我是用相对路径还是绝对路径都报错,这就搞的我很郁闷了,这究竟是为什么呢?

  原来这是JSP的安全性作的鬼。

  在J2EE中其主要安全性就体现在web工作目录的WEB-INF文件夹下.如果将一个页面保存在WEB-INF文件下 ,那么该页面则不能被用户访问,就好比小偷都看不见我有什么,他还能知道要偷什么吗.. 因此如果将一个页面放在WEB-INF文件夹下,那么该页面的安全性将得到提高... 但有时候当我们需要访问该页面时,却无法访问,如何能够访问WEB-INF文件夹下的页面呢?

  struts为此提供了很便捷的跳转环境。在struts中每一个跳转都是通过一个action来处理的,action处理完了之后在forward到相对地址就行,这个很简单。

  但是问题是如果我不通过action来处理跳转,我想直接从web-inf的a.jsp页面跳到b.jsp页面怎么办呢?通常这个时候我们会试下相对地址/b.jsp 绝对地址/WEB-INF/b.jsp或者<%=request.getContext()=%>/WEB-INF/b.jsp,但无论怎么搞都不行,这个时候就比较崩溃。想直接跳转从安全性的角度来看肯定不行的,因为在WEB-INF底下web容器是不让你看见他的跳转路径的。直接跳转不行,间接跳转还是有的,比如struts的action跳转就是一种间接,为什么间接就是安全的呢?因为它的跳转地址是在web.xml里面配好的,访问的人是看不见的所以是间接安全的。难道只有struts可以完成间接的任务,显然不是了。其实想一想struts的action是什么东西就知道怎么做了,struts的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下页面用户可以直接输入地址访问。

相关案例查看更多