社区
Java SE
帖子详情
javase 数据库安全问题
Aanman
2017-03-16 04:02:11
java界面查询,比如一个登陆的javaSE程序 ,
生成jar或exe会不会被反编译看到连接数据库的信息,
这样就对数据库存在威胁性了,
如果有这样的情况,怎样防止呢?
...全文
198
6
打赏
收藏
javase 数据库安全问题
java界面查询,比如一个登陆的javaSE程序 , 生成jar或exe会不会被反编译看到连接数据库的信息, 这样就对数据库存在威胁性了, 如果有这样的情况,怎样防止呢?
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用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
【史上最全】【后端】【面试】必背大全.pdf
【不到一杯奶茶的价钱】史上最全后端面试所有
问题
总结,分为操作系统、计算机网络、数据库、数据结构与算法、设计模式、
javase
。共200个
问题
,67797个字,大全在手,offer我有!
java自学教程
java自学教程,
javaSE
基础知识, 第1章 Java环境及配置 第2章 Java基本语法 第3章 类和接口 第4章 Java Applet 第5章 Java图形处理 第6章 Java用户界面技术 第7章 异常、事件和多线程机制 第8章 输入输出技术 ...
Java基础,小白入门
JavaSE
本课程适合新手学习Java使用,主讲
JavaSE
中主要关键知识点。包括了Java数据类型的使用、运算符、控制流程语句、面向对象、多态实现、异常处理、输入输出流的使用、线程间数据共享方法、各容器的使用(包括List、Set...
shiro-test:*本实例是
javase
的环境,用到了junit进行测试,不是web,也没用到spring *具体使用到了shiro的下列功能*身份验证:身份认证登录,验证用户是不是拥有相应的身份; *授权方式:授权,即权限验证,验证某已认证的用户是否拥有权限;即判断用户是否能做事情,常见的如:验证某用户是否拥有某个角色。或者细粒度的验证某用户对某人*会话管理器:会话管理,即用户登录后就是一次会话,在没有退出之前,它的所有信息都在会话中;会话可以是普通
JavaSE
环境的,也可以是如Web环境的; *密
*密码学:加密,保护数据的安全性,如密码加密存储到数据库,而不是明文存储; *记住我:记住我,这个是非常常见的功能,即一次登录后,下次再来的话*缓存:缓存,缓存,某些用户登录后,其用户信息,拥有的角色...
java面试题-最新整理.docx
一、
JavaSE
编程基础 1 二、JDBC技术 5 三、Mysql数据库技术 7 四、JavaScript语言和jQuery技术 9 五、JSP技术 10 六、Spring框架 14 七、SpringMVC框架 15 八、Mybatis框架 17 九、shiro安全框架 19 十、maven 20 ...
Java SE
62,614
社区成员
307,327
社区内容
发帖
与我相关
我的任务
Java SE
Java 2 Standard Edition
复制链接
扫一扫
分享
社区描述
Java 2 Standard Edition
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章