如何保护你的JSP页面

为了更好地保护你的JSP避免未经授权的访问和窥视, 一个好办法是将页面文件存放在Web应用的WEB-INF目录下。

  通常JSP开发人员会把他们的页面文件存放在Web应用相应的子目录下。一个典型的商店应用程序的目录结构如图2所示。跟catalog (商品目录)相关的JSP被保存在catalog子目录下。跟customer相关的JSP,跟订单相关的JSP等都按照这种方法存放。
  
  这种方法的问题是这些页面文件容易被偷看到源代码,或被直接调用。某些场合下这可能不是个大问题,可是在特定情形中却可能构成安全隐患。用户可以绕过Struts的controller直接调用JSP同样也是个问题。

  为了减少风险,可以把这些页面文件移到WEB-INF 目录下。基于Servlet的声明,WEB-INF不作为Web应用的公共文档树的一部分。因此,WEB-INF 目录下的资源不是为客户直接服务的。我们仍然可以使用WEB-INF目录下的JSP页面来提供视图给客户,客户却不能直接请求访问JSP。

  采用前面的例子,图3显示将JSP页面移到WEB-INF 目录下后的目录结构

  如果把这些JSP页面文件移到WEB-INF 目录下,在调用页面的时候就必须把"WEB-INF"添加到URL中。例如,在一个Struts配置文件中为一个logoff action写一个Action mapping。其中JSP的路径必须以"WEB-INF"开头。如下所示:请注意粗体部分.

  这个方法在任何情况下都不失为Struts实践中的一个好方法。是唯一要注意的技巧是你必须把JSP和一个Struts action联系起来。即使该Action只是一个很基本的很简单JSP,也总是要调用一个Action,再由它调用JSP。

  最后要说明的是,并不是所有的容器都能支持这个特性。WebLogic早期的版本不能解释Servlet声明,因此无法提供支持,据报道在新版本中已经改进了。总之使用之前先检查一下你的Servlet容器。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
JSP(JavaServer Pages)是一种用于开发动态Web页面的Java技术。在JSP页面中,可以使用script标签来包含JavaScript代码。xss(跨站脚本攻击)是一种常见的网络安全漏洞,攻击者通过在网页中注入恶意的脚本代码,使得用户的浏览器执行这些脚本并达到攻击目的。 对于JSP页面中的script标签,存在一些潜在的XSS漏洞,这些漏洞主要来源于两个方面。 首先,通过动态生成的页面内容,如果不经过合适的处理就直接输出到script标签中,就可能导致XSS漏洞。攻击者可以在输入框中输入恶意脚本代码,并提交给服务器,服务器将此代码动态生成到JSP页面中的script标签中,当用户访问该页面时,恶意脚本就会被执行,从而对用户造成安全威胁。 其次,对于从其他地方获取的数据,如果没有进行适当的过滤和验证,也可能导致XSS漏洞。比如从URL参数、表单数据、cookie等位置获取的数据,如果直接被输出到JSP页面的script标签中,也可能被攻击者利用。 为了解决这些XSS漏洞,我们可以采取一些有效的措施。比如对用户输入的数据进行合适的过滤和转义,确保使用合适的编码方式输出到script标签中,可以使用如JSTL的c:out标签或者其他安全的输出方式。另外,对于从其他位置获取的数据,也要进行合适的验证和过滤,确保输出到script标签中的数据是安全可信的。 总之,对于JSP页面中的script标签,我们需要意识到可能存在的XSS漏洞,并采取适当的措施进行防范,以保护用户的信息安全。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值