我正在使用Applet登录我的Web应用程序,我在其中使用会话ID 以确保其安全以进行身份验证,但我不确定这是否是使用Applet的正确方法因为我的网络应用程序平台具有很高的安全性,所以我无法冒险。
我正在使用Applet,因为我正在使用客户端的拇指指纹设备。
// JSp Code for call Applet
<APPLET CODE="AppletCall.class" WIDTH=100 HEIGHT=150 id="AppletECGCapture">
<PARAM name="jsessionid" value="${pageContext.session.id}">
</APPLET>
// applet中的代码
String jsessionid = getParameter("jsessionid");
getAppletContext().showDocument(new URL("http://localhost:8181/ServerSideProcessing/getAppletAuth.html?jsessionid="+jsessionid+"&userName=Ankit"));
// getAppletAuth.html映射代码
@RequestMapping("/getAppletAuth.html")
public @ResponseBody String getAppletAuth(HttpServletRequest request, HttpServletResponse response){
try {
System.out.println("DisplayController.getAppletAuth()");
if(request.getSession().getId().equals(request.getParameter("jsessionid"))){
System.out.println("Login Done : ");
}else{
System.out.println("Login Not Done : ");
}
return "appletData";
} catch (Exception e) {
// TODO: handle exception
e.printStackTrace();
return "";
}
}
所以请帮助我知道我是否正在朝着正确的方向努力使我的应用程序安全。
答案 0 :(得分:3)
我认为您在询问使用以下网址发送请求是否安全:
"http://localhost:8181/ServerSideProcessing/getAppletAuth.html?jsessionid=" +
jsessionid + "&userName=Ankit"
如果您向localhost
发送请求(即127.x.x.x
地址),请求应该通过环回newtwork ...并且不会从您的计算机上移除。假设您的系统的本地安全性尚未包含且您可以信任特权用户,则该请求应该足够安全。
另一方面,如果你没有发送到“localhost”,那么你所做的并不安全。由于您使用的是HTTP,因此连接通过网络进行清除...而且,一些访问网络的坏人可能会拦截并读取数据。这包括HTTP请求消息的开始...其中包括该会话ID。一旦他们掌握了会话ID,他们就可以(理论上)劫持会话。
后一个问题的补救措施是通过HTTPS发送请求。
...但我不确定这是否是使用Applet作为我的Web应用程序平台的正确方法是高度安全的,所以我不能冒风险。
在这种情况下,您应该找到一位合格/经验丰富的Java安全顾问, 完全理解这些内容,并付费对您的代码进行全面的安全审核
在StackOverflow上提出问题不足以代替安全审查。