我正在创建一个API以在我的数据库中输入。(使用Hibernate)
我制作了映射不同表的类。我将它导出到jar(比如jar 1)(包含类和.hbm.xml文件)。
现在我正在创建API(包括jar1),以便最终用户可以更新我的数据库。
我已将API导出到jar(比如jar2)。
现在最终用户必须包含jar2才能访问API。但是当jar2使用jar1时我也必须向用户提供jar1。
这里是否存在任何安全问题(数据库),因为我向他们提供了数据库类文件和.hbm.xml文件?如果是,我该如何避免?
我正在使用java,Hibernate 4和eclipse(IDE)
答案 0 :(得分:1)
所有“直接访问数据库”应用程序(不仅适用于java)都存在使用数据库登录配置向客户端工作站提供的安全问题。没有办法解决它,除了转移到三层应用程序。换句话说,如果不让用户访问您的数据库,您就无法授予用户访问数据库的权限。
Paliative措施将为每个安装(或其中一组)设置不同的数据库登录用户/密码,并微调数据库服务器安全性,以允许那些仅登录应用程序运行所需的最低安全权限。
答案 1 :(得分:1)
这里是否存在任何安全问题(数据库),因为我向他们提供了数据库类文件和.hbm.xml文件?如果是,我该如何避免?
是的,您正在向他们提供这些详细信息,没有其他方法可以让您真正避免它。但与此同时,您可以为这些用户设置权限,使其具有只读访问权限。
更重要的是,如果您的系统需要高度安全,那么为什么不将这些API公开为webserive。您实际上可以公开结束点,并确保只在另一个包装器中返回所需的信息。这样就可以避免暴露实体和映射。