如何保护我的java Web应用程序?
我有一个Web应用程序,当用户登录时,他们到达mainjsp.jsp
页面。
在此页面中,日期的文本框很少,并根据日期和从另一个下拉列表中选择,提交数据。 这些数据由servlet
检索并返回到mainjsp
页面。
我担心的是安全问题。 现在,当我复制粘贴mainjsp.jsp
页面的URL并将其粘贴到任何浏览器中时,此页面将按原样显示。 我不希望这种情况发生。 我希望用户首先登录,因此我希望我的Web应用程序安全。
我不知道该怎么做。 你能告诉我怎样才能做到这一点?
另外请告诉我如何为Web应用程序中的任何页面实现此目的。 如果用户尚未登录,则用户无法访问任何页面。
您应该有基于表单的身份validation 。 以下是应添加到web.xml的代码段
pagesWitUnrestrictedAccess No Description *.jsp No Description NONE FORM /login.jsp /loginerror.jsp
一些参考文献:
- 保护Web应用程序
- 保护Java EE 5 Web应用程序
- 在部署描述符中声明安全性要求
您可以检查Shiro使用开箱即用的安全框架,并防止Web环境中的高级安全性。
Spring Security 3function强大且易于配置
http://static.springsource.org/spring-security/site/docs/3.0.x/reference/ns-config.html#ns-minimal
使用会话。 在登录时设置会话变量,并检查每个页面上是否必须保证安全。
当用户输入凭据并将其提交到登录servlet时,请在会话中添加用户名或用户ID。 检查应用程序标题中的会话属性(在每个页面上都是如此)会话中是否存在用户名或用户ID? 如果是,则将其重定向到请求的页面,否则将用户重定向到login.jsp。 例如:
String var= null; try { var= (String) session.getAttribute("user_name_session"); if (var== null) { response.sendRedirect("/Login.jsp"); return; } } catch (Exception e) { System.out.println(e); }
您可以根据自己的要求修改代码段,这是阻止用户通过将链接复制到另一个浏览器来访问任何页面的最简单方法。
这是将HTTP请求转换为HTTPS请求的最佳方法