首页 文章

通过Java applet传递userid和密码的替代方法?

提问于
浏览
0

applet将帮助用户创建将发送到PHP服务器的java类对象,该服务器将对象作为blob存储在MySQL数据库中 . 反过来也应该工作 - 读回数据 .

无论如何,用户必须登录到PHP服务器才能查看此applet . 但与此同时,我不想让applet'open'在没有密码的情况下访问数据库(通过PHP) .

连接将是这样的:
Java Applet - 发送URL流 - > PHP脚本 - 验证 - 如果有效连接到DB - > MySQL DB

我希望此过程对用户进行身份验证,但同时我不希望用户在登录网站后再次登录,同时我不希望Applet存储任何安全信息因为那不安全 .

这边有办法吗?或者我必须寻找替代方案吗? (如果是,还有什么选择?)

2 回答

  • 2

    您的applet应该能够从显示的页面中读取cookie . 因此,假设用户已经对网页进行了身份验证,您可以从页面中获取会话ID(或其他任何内容),并使用它来“验证”到您的服务器中 . 但请记住,除非您使用加密会话(https),否则第三方可以在传输过程中读取这些cookie . 此外,您需要知道页面上的任何第三方脚本也能够读取这些cookie .

    从安全的角度来看,我不认为这样做是理想的,因为让用户再次对数据库进行身份验证,但这是您可以使用的替代方案 .

  • 2

    当用户进入站点时,applet调用应进入服务器已创建的相同HTTP会话 .

    会话由服务器创建,服务器将会话ID作为特殊Cookie发送 . 对于基于Java的服务器,它通常是 jsessionid . 服务器使用名为 Set-Cookies 的HTTP响应头发送cookie . 客户端应使用标头 Cookies 发回所有cookie .

    因此,您的applet应该能够访问浏览器保留的cookie并发送它们 . 要访问浏览器的cookie,您应该使用允许mapplet从包含页面调用javascript的LiveConnect API .

相关问题