社区
Java SE
帖子详情
javase 数据库安全问题
Aanman
2017-03-16 04:02:11
java界面查询,比如一个登陆的javaSE程序 ,
生成jar或exe会不会被反编译看到连接数据库的信息,
这样就对数据库存在威胁性了,
如果有这样的情况,怎样防止呢?
...全文
205
6
打赏
收藏
javase 数据库安全问题
java界面查询,比如一个登陆的javaSE程序 , 生成jar或exe会不会被反编译看到连接数据库的信息, 这样就对数据库存在威胁性了, 如果有这样的情况,怎样防止呢?
复制链接
扫一扫
分享
转发到动态
举报
AI
作业
写回复
配置赞助广告
用AI写文章
6 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
ps45221
2017-03-17
打赏
举报
回复
感觉你这种用法就很奇怪。。 就算是C/S架构的程序,也有自己的服务端的,客户端怎么可能直接去连数据库。 你是自己写的demo,还是实际应用遇到的?
杠__
2017-03-17
打赏
举报
回复
5楼正解,,
zs808
2017-03-17
打赏
举报
回复
因为你如果直连数据库的话,连接信息是肯定要提供的,并且还必须是明文。 因为你会提供源代码,所以任何在代码中对连接字符串的加密操作都将不可靠。如果要安全,就不能让源代码让用户可见,至少数据库连接这部分,不能让用户可见。 众所周知,java的编译器做的工作大部分就是按照源代码进行“翻译”,转换成class文件,实际上,这个过程是可逆的,所以想通过编译的手段隐藏源代码是不可靠的了。 那么,就没什么办法了么??? 非也,既然需要连接数据库,那么就必须保证客户端是有对数据库服务器的访问是连通的,既然必须保证客户端要连接服务器,为什么我们不能把与数据库操作相关的代码放到服务器上,然后客户端通过网络去服务器请求数据,服务器只提供结果,而不提供数据库的直接操作呢?这样就避免客户端与数据库直接操作,而服务端的代码对客户是不可见的,安全性就大大提高了,这就是C/S架构。 C/S架构的核心就是业务分离,将传统的单Client业务分为Client业务与Server业务。对安全性要求非常高的业务,核心业务逻辑,需要访问服务器资源的业务,以及保密性要求非常高的业务,作为Server业务实现,界面展示,直接跟用户打交道的业务,作为Client业务实现。然后Client业务与Server业务通过Http协议进行数据交换,这就是C/S架构的实现思路。 另外,C/S架构还可以过渡到B/S架构,这样用户就无需专门的“客户端”来进行操作,只要通过浏览器访问你的服务地址,即可完成想要的操作,这种架构也是目前的主流架构。 ============ 回到楼主的问题,提高安全性的做法,推荐就是摒弃直连数据库,采用C/S分离业务逻辑,重新设计。 这也是J2EE的价值之一。
Black-rabbit
2017-03-16
打赏
举报
回复
可以对数据库信息进行加密,使用的时候再解密。
Aanman
2017-03-16
打赏
举报
回复
引用 1 楼 u011039332 的回复:
如果是需要提供给其他人使用, 做成与web服务交互, 而不是直接连db
并不是web程序 是java SE 程序,会打包成exe,代码都会提供。
教练、我想打篮球
2017-03-16
打赏
举报
回复
如果是需要提供给其他人使用, 做成与web服务交互, 而不是直接连db
基于
javase
汽车销售管理系统(含数据库)
- 数据安全:通过严谨的数据库设计和权限管理,保证数据的安全性和完整性。 - 决策支持:丰富的报表和数据分析功能,助力管理层做出科学决策。 - 客户关怀:完善的客户管理和售后服务模块,提升客户满意度和忠诚度。...
JavaSE
图书馆管理系统
9. **安全性**:由于涉及敏感的用户信息,系统需要考虑数据安全,例如对用户密码进行加密存储,防止未授权访问数据库,以及对SQL注入攻击的防范。 10. **测试与调试**:在系统开发完成后,需要进行全面的功能测试和...
javaSE
javaEE oracle 初学必备
它在
JavaSE
的基础上扩展了更多的服务,如数据库连接、事务管理、邮件服务、安全控制、Web服务等。JavaEE包含了一系列的规范,如Servlet、JSP、EJB(Enterprise JavaBeans)、JPA(Java Persistence API)等,帮助...
JavaSE
项目企业员工管理系统
总的来说,"
JavaSE
项目企业员工管理系统"是一个涵盖数据库设计、对象建模、业务逻辑处理和用户交互等多个方面的综合项目。它展示了
JavaSE
在实际企业级应用中的强大功能,并为开发者提供了扩展和定制的基础。
javaSE
项目
项目中可能包含并发编程的实例,如创建Thread对象、实现Runnable接口、使用ExecutorService或者用synchronized关键字和volatile变量来管理共享资源,理解线程安全和并发控制是提升程序效率的关键。 5. **物联网技术...
Java SE
62,634
社区成员
307,269
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章