我想开发一个胖客户端应用程序(而不是使用jsp /服务器端),我将在启动应用程序时提供登录面板。我不确定这是否是正确的方法(在安全性方面),所以想要一些评论。
身份验证将通过后端数据库进行。也就是说,我在数据库级别创建用户,我的胖客户端应用程序将使用提供的用户ID和密码对数据库进行身份验证。这种方法足够安全吗?或者我需要一个真正的会话/密码管理API才能做到这一点?
如何在这样的胖客户端应用中保留会话?另外,如果我想加密我的应用程序和数据库服务器之间的流量,我应该使用JSSE还是类似的?有没有办法加密数据而不是通信渠道?我相信我的数据库服务器也需要能够解密我的加密数据。
答案 0 :(得分:1)
我在数据库级别创建用户,我的胖客户端应用程序将使用提供的用户ID和密码对数据库进行身份验证。这种方法足够安全吗?
是的,只要你这样做:
SELECT count(*) FROM USERS WHERE USERNAME=? AND PASSWORD=MD5(?)
或您使用的任何哈希算法来验证用户。请注意,此技术故意不会告诉您用户名或密码是否错误,以避免将此信息泄露给攻击者。这个想法是它返回1或0。或者我需要一个真正的会话/密码管理API来执行此操作吗?
不是。
如何将会话保存在这样的胖客户端应用程序中?
如果您的意思是在登录之间持续存在,请将其保留在数据库中。如果您只是指在登录和注销之间持续的会话,只需将其保留在注销时释放的对象中。
另外,如果我想在我的应用程序和数据库服务器之间加密流量,我应该只使用JSSE还是类似的?
是
有没有办法加密数据而不是通讯渠道?
数据库可以使用加密功能。
我相信我的数据库服务器还需要能够解密我的加密数据吗?
什么加密数据?如果您的意思是通过SSL传输的内容,它将自动解密。