JDBC从入门到精通三

5. 安全性考虑

作为网络上的语言JAVA必须十分注安全性的考虑。基于上面的讨论,JDBC的两种主要使用场合里面,我们必须考虑安全性问题:

* 在Java applications的场合里面Java代码是本地的,所以也是"trusted"

* 没有验证的Java applet代码不可以存取本地的以及其他网络的数据。

5. 1. JDBC 和未验证的applet

JDBC首先必须符合JAVA的一般安全规则。另外:

* JDBC 必须认为没有验证的applets是不可靠的。

* JDBC 不可以让不可靠的applets存取本地数据库。

* 一个已经向JDBC DriverManager注册的是JDBC Driver只能存取它所来的数据源。

* 一个applet也只能向它所Download来的服务器来存取数据。

如果JDBC驱动层如果完全确信对一个数据库服务器打开连接不会引起认证或者权限问题(可能由网上随机主机上运行的程序引起),那么它就允许applet打开这样的连接。

数据库服务器不通过IP地址来限制存取是相当少的,主要是为了举例。(当心,这一段话我可能翻译反了!!!大家看看原文。)这些限制是相当烦琐的。不过他们与对一般applet的限制是一致的我们没有必要放开这些限制。

5. 2. JDBC 和Java应用程序

对于一个普通的Java应用程序(例如全部用Java代码而不是不可靠的applet )JDBC将从本地的类路径里面获得驱动,并且允许应用程序自由存取文件,远程服务器等等。

但是和applet一样,如果由于某些原因一个没有验证的sun.sql.Driver类从远程的来源里面获得,那么这个驱动只能和相同地方来的代码配合。

5. 3. Driver的安全责任

JDBC driver可能在各种情况下使用,所以驱动的编制者遵循一定的简单的安全规则,从而避免applet做非法的数据库连接。

如果所有的驱动都象applet一样从网上下载,那么这些原则将是不必要的,因为普通的安全规则已经对它做了限制。

但是驱动的编写者必须记住一旦他们的驱动获得成功,用户将在本地磁盘安装这些驱动,那么驱动将成为Java环境中一个被信任的部分,所以必须确信它不会被来访的applet所滥用。所以我们鼓励所有的驱动编写者必须遵循一定安全原则。

所有这些原则都是在连接打开的时候使用。这正式驱动和虚拟机器检查当前调用者是否真的可以与指定的数据库连接的时刻。一旦连接建立就不必做更多的检查了。

时间: 2024-11-03 21:50:18

JDBC从入门到精通三的相关文章

JDBC从入门到精通二

2. 7. 使普通任务简化 我们希望普通的任务能够是简单的,而不一般的工作是可行的. 一个普通任务是指一个程序员执行一个简单的没有参数的SQL语句(例如:SELECT,INSERT,UPDATE,DELETE),然后(例如SELECT)处理返回的具有简单类型的元组.一个具有传入参数(IN parameter)的SQL语句也是普通的. 不那么普通但是也是十分重要的情形是当程序员使用有INOUT,OUT参数的SQL语句.我们也需要支持读写几兆字节对象的SQL语句,更特别一些的情形包括一个语句返回了多

JDBC从入门到精通一

1. 介绍 许多开发者和用户都在寻找Java程序中访问数据库的便捷方法.由于Java是一个健壮,安全,易于使用的,易于理解且可以从网络中自动download ,所以它成为开发数据库应用的一种良好的语言基础. 它提供了C,C++,Smalltalk, BASIC, COBOL, and 4GLs的许多优点.许多公司已经开始在Java与DBMS的连接方面做工作. 许多Java应用开发者都希望能够编写独立于特定DBMS的程序,而我们也相信一个独立于DBMS的接口将使得与各种各样DBMS连接变得最为便捷

MyBatis 入门到精通(三) 高级结果映射

MyBatis的创建基于这样一个思想:数据库并不是您想怎样就怎样的.虽然我们希望所有的数据库遵守第三范式或BCNF(修正的第三范式),但它们不是.如果有一个数据库能够完美映射到所有应用程序,也将是非常棒的,但也没有.结果集映射就是MyBatis为解决这些问题而提供的解决方案.例如,我们如何映射下面这条语句? [html] view plaincopy <select id="selectBlog_by_id" parameterType="int" resul

学习SEO优化从入门到精通的三点要素

对于站长朋友们而言,搞好网站的SEO优化已经成了必须要学习的技巧了,可是很多站长总认为SEO优化的学习难度很高,对于个人而言,如果没有打算长期的学习精神是很难搞好的,可是笔者认为,其实SEO优化的学习难度并不高,因为对于咱们站长们而言,是没有必要去搞懂百度搜索引擎的算法是怎么编写的,只要知道其搜索引擎的算法原理就行了,然后再结合这些原理,对于自己的网站进行针对性的优化就能够让自己的网站获得更好的排名,其实从SEO优化的入门到精通,只有严格遵守三个要素,你会发现学习的特别轻松,下面笔者就来和大家分

Hibernate从入门到精通(三)Hibernate配置文件

在上次的博文Hibernate从入门到精通(二)Hibernate实例演示我们已经通过一个实例的演示对Hibernate 的基本使用有了一个简单的认识,这里我们在此简单回顾一下Hibernate框架的使用步骤. Hibernate 框架的使用步骤: 1.创建Hibernate的配置文件 2.创建持久化类,即其实例需要保存到数据库中 的类 3.创建对象-关系映射文件 4.通过Hibernate API编写访问数据库的代码 Hibernate配 置文件 本此博文,我们重点讲解一下Hibernate的

Scala入门到精通——第三十节 Scala脚本编程与结束语

本节主要内容 REPL命令行高级使用 使用Scala进行Linux脚本编程 结束语 1. REPL命令行高级使用 在使用REPL命令行时,有时候我们需要粘贴的代码比较大,而普通的粘贴可能会些一些问题,比如中文粘贴会出现乱码.多行代码粘贴时会出错,此时需要用到REPL的高级功能.在日常开发过程中,我们粘贴多行代码的时候会遇到下列问题: //本意是要粘贴下面两行代码 class Person(val name:String,val age:Int) val p=new Person("摇摆少年梦&q

编程学习:Java学习从入门到精通

编程 Java Learning Path (一).工具篇 一. JDK (Java Development Kit) JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什么Java应用服务器实质都是内置了某个版本的JDK.因此掌握JDK是学好Java的第一步.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BE

Java网络编程从入门到精通

Hibernate从入门到精通(十一)多对多双向关联映射 Hibernate从入门到精通(十)多对多单向关联映射 Hibernate从入门到精通(九)一对多双向关联映射 Hibernate从入门到精通(八)一对多单向关联映射 Hibernate从入门到精通(七)多对一单向关联映射 Hibernate从入门到精通(六)一对一双向关联映射 Hibernate从入门到精通(五)一对一单向关联映射 Hibernate从入门到精通(四)基本映射 Hibernate从入门到精通(三)Hibernate配置文

Java学习从入门到精通

Java学习从入门到精通工具篇一. JDK (Java Development Kit) JDK是整个Java的核心,包括了Java运行环境(Java Runtime Envirnment),一堆Java工具和Java基础的类库(rt.jar).不论什么Java应用服务器实质都是内置了某个版本的JDK.因此掌握JDK是学好Java的第一步.最主流的JDK是Sun公司发布的JDK,除了Sun之外,还有很多公司和组织都开发了自己的JDK,例如IBM公司开发的JDK,BEA公司的Jrocket,还有G