applet将帮助用户创建将发送到PHP服务器的java类对象,该服务器将对象作为blob存储在MySQL数据库中。反过来也应该工作 - 回读数据。
无论如何,用户必须登录PHP服务器才能查看此applet。但与此同时,我不想让applet'open'在没有密码的情况下访问数据库(通过PHP)。
连接将是这样的:
Java Applet - 发送URL流 - > PHP脚本 - 验证 - 如果有效连接到DB - > MySQL DB
我希望此过程对用户进行身份验证,但同时我不希望用户在登录网站后再次登录,同时我不希望Applet存储任何安全信息,因为这不安全。
这里有办法吗?或者我必须寻找替代方案吗? (如果是,还有什么选择?)
答案 0 :(得分:2)
您的小程序应该能够从显示的页面中读取Cookie。因此,假设用户已经对网页进行了身份验证,您可以从页面中获取会话ID(或其他任何内容),并使用它来“验证”到您的服务器中。但请记住,除非您使用加密会话(https),否则第三方可以在传输过程中读取这些cookie。此外,您需要知道页面上的任何第三方脚本也能够读取这些cookie。
从安全的角度来看,我不认为这样做是理想的,因为让用户再次对数据库进行身份验证,但这是您可以使用的替代方案。
答案 1 :(得分:2)
当用户进入网站时,applet调用应进入服务器已创建的同一HTTP会话。
会话由服务器创建,服务器将会话ID作为特殊Cookie发送。对于基于Java的服务器,通常为jsessionid
。服务器使用名为Set-Cookies
的HTTP响应头发送cookie。客户应使用标题Cookies
发回所有Cookie。
因此,您的小程序应该能够访问浏览器保留的cookie并发送它们。要访问浏览器的cookie,您应该使用允许mapplet从包含页面调用javascript的LiveConnect API。