1.1跟我学如何应用WebLogic WorkShop设计J2EE Web程序(第6部分)
1.1.1利用WorkShop实现WebLogic服务中部署的应用的安全技术
1、WebLogic中的安全技术概述
(1)安全目标
所有安全技术的设计目的都是为了实现三个基本目标------验证、授权和安全传输。
1)参与者的身份验证(验证)
参与者通过身份验证意味着在一定程度上证明该参与者自称的身份是真实的。不同情况需要不同级别的身份验证。
在某些情况下,仅需对Web 资源进行身份验证,而客户端可以基本保持匿名状态。
例如,如果您的Web 资源需要获取客户的信用卡号码,您希望客户明白他们是在向您提供信用卡号码,而不是提供给心怀恶意的第三方。但您的客户可以保持匿名状态。
在其他一些情况下,Web 资源将要求客户端提供身份证明。例如,如果某家银行提供了对客户经常帐户的联机访问,则该银行应该对要访问该联机帐户的那些当事方进行某种形式的客户端身份验证。
2)保证允许他或者她访问所要求的资源(授权)
3)秘密通信和传输数据的完整性(安全传输)
如果只有预期接收方可以读取某数据,则该数据的传输为秘密传输;而数据完整性是指数据在传输过程中没有被更改。(使用传输安全时,一般不需要采取特殊措施来确保数据的完整性。这是因为SSL 使用的加密流程可确保数据完整性。)
(2)安全验证
在J2EE的应用中实现安全验证可以采用Web层的登录验证和业务逻辑层的基于角色的验证逻辑两种形式相互结合,对于Web层的登录验证对于一般的站点来说,可能已经足够了。不过,如果您打算将来向用户提供付费的服务业务,那么就需要切实保证系统的安全性。
通常,不建议自己开发安全逻辑,因为开发防攻击的安全逻辑本身就不是一个简单的任务,此外,自定义的安全逻辑可能会导致较低的可重用性。从Java 1.4和J2EE 1.3开始,Java验证与授权服务JAAS(Java Authentication and Authorization Service)就被引入到核心包中。JAAS实现了验证和授权两类服务。
(3)WebLogic Server的安全框架
1)WebLogic Server的安全框架是依照J2EE安全规范定义的,J2EE应用程序开发者可
以很容易的使用这个框架提供的服务保护自己的应用程序。
2)在WebLogic Server环境下,组件的安全是由容器负责的,组件的开发人员可以不用
或者很少在组件中添加安全代码。这种安全逻辑和业务逻辑相对独立的架构,使得企业级应用系统有更好的灵活性和扩展性。
3)WebLogic Server为应用程序开发者提供了两种形式的基于容器的安全性:说明性的
安全性以及可编程的安全性。
2、与安全相关的一些基本概念
(1)验证(Authenticate)与授权(Authorization)、安全传输
对应用程序的保护可以分为三个层面,一个是验证(Authenticate,处理user-role关系),另一个是授权(Authorization,处理role-resource关系)和安全传输。
1)验证是判断当前用户是否是系统中的合法用户(是否就是他或者她所宣称的那个人),
这可以通过验证口令、数字证书来完成(用JAAS 进行认证)。
2)授权指的是判断用户是否拥有访问某一资源的权限(保证允许他或者她访问所要求的
资源),例如判断某一用户是否调用一个EJB(用JAAS 进行授权)。
3)通过安全网络连接进行完整的信息交换(一般可以采用JSSE 进行安全传输)
因为我们需要保证数据在传输过程中不会被未授权的人访问,因此我们还需要保证数据在到达之前,没有在传输过程中被修改过,不管这种修改是有意的还是无意的。我们可以利用安全套接字层(SSL)和传输层安全性(Transport Layer Security,TLS)协议实现这两种功能。
SSL 和TLS 不是特定于Java 的协议,它们是为维护通过套接字的数据的完整性和私密性而设计的网络层协议。
说明:
SSL的内部实现是从一个JSSE 套接字工厂而不是直接从https://www.doczj.com/doc/e915134287.html,.Socket 类获得套接字。客户端代码从SSLSocketFactory 获取套接字,而服务器端代码从SSLServerSocketFactory 获取套接字。通过从这些工厂获取套接字,而不是像https://www.doczj.com/doc/e915134287.html, 包允许我们所作的那样,简单地创建标准的、不安全的套接字。
对用户通常使用用户名和密码对进行身份验证。用户组是多个用户组成的集合,通常把具有类似访问系统资源权限的一组用户定义到一个用户组里面去。例如,建立一个财务人员用户组,可以把所有财务科的人员用户放入这个组里面去,便于统一管理。
(3)角色(Role)
用户和用户组是系统中实实在在存在的,通常信息存放于数据库或文件中。角色是一个抽象化的逻辑概念,与用户组类似,是应用程序开发人员定义的。
例如,在开发一个Web应用程序的时候,定义一个角色,然后定义该角色的访问权限,最后,把此角色与WebLogic Server中的实际用户或用户组对应起来,从而该用户或用户组就具有该角色所对应的权限。
例如人力资源应用程序可以定义下列用户类别:
1)管理员可以执行任何操作,包括配置应用程序本身
2)经理可以执行有关员工的人力资源操作(添加、删除、调整补贴等)
3)员工可以访问自己的人力资源记录的子集。
每个用户类别都称为安全角色,即应用程序设计者所定义的抽象用户组。部署应用程序时,管理员会将角色映射为生产环境中的实际安全标识。
Weblogic Console中直接设置USER,GROUP,ROLE和把它们放到LDAP服务器。
3、安全性设计
INTERNET是一个开放的公共网络,在这样一个开放的网络上拓展传统业务,安全性是要考虑的首要因素。为确保系统安全、正常地运转,下面主要针对在系统安全性、应用安全性、系统的监控以及安全管理这几个方面提出建议:
(1)系统安全性
作为整个应用系统运行基础的系统首先必须是安全的。
1)IP路由过滤器:所有信息都必须经过路由器的过滤才能进入到服务器网段。
2)网络防火墙:由于防火墙所处的物理通道位置以及它的安全功能,因此既有物理隔离
作用,又具有访问控制能力,这就决定了它在网络整体规划布局与网间访问控制中的最基础、最重要的地位。
为了保证整个系统安全地运行,仅仅从系统方面考虑是不够的,还必须从实际应用的角度加以考虑。认证机制是应用系统安全的一个重要保证,它主要包括身份认证、数据加密、数字签名等。
(3)WebLogic 的安全性
由于本项目的解决方案运行于BEA WebLogic应用服务器平台之上,通过WebLogic应用服务器的安全机制可以加强安全保护。主要包括以下几个方面:
1)用户分组管理:对用户进行分组,每个组对系统资源有不同的使用权限。
2)访问控制表:访问控制表用来限定不同系统资源对不同用户的开放程度。
3)用户管理:WEB服务器可以对用户完成识别、管理的任务。
用户认证:每个实际的用户将被分到一个独立的组中,具备预定的访问权限。WebLogic应用服务器完成对用户的管理和认证。
4、WebLogic Workshop 中所提供的对安全技术的支持
WebLogic Workshop作为一种J2EE技术的开发平台,同样也提供了WebLogic服务中所提供的各项安全技术的支持,WebLogic Workshop 提供三个主要方面的安全技术
1)传输安全
2)Web Service 安全
3)基于角色的安全
5、传输安全
(1)含义
传输安全指一组安全技术,用于确保客户端和服务器的真实性,以及在Web 服务器及其客户端之间传递的数据的完整性和保密性。使用传输安全,可以通过SSL、用户名/密码身份验证和客户端数字证书来确保Web 资源的安全。
(2)优缺点
传输安全的优势在于其普及性且比较容易实现。而缺点在于只有数据在电缆上传输时才能得到保护。当数据到达接收方后,传输安全机制将不再适用,因此,如果数据登录到接收方的机器上,其保密性可能无法得到保障。
(3)采用的方法
1)单向SSL:单向SSL 具备两个主要优点。
第一,对Web 服务器的标识进行身份验证。
第二,通过加密客户端与服务器之间的消息,可以确保通信的保密性。单向SSL 中的“单向”是指仅对服务器的标识进行身份验证,而不对客户端的标识进行身份验证。
如果要确保通信的保密性,但客户端标识是非重要因素,则应使用单向SSL。
2)单向SSL 与基本身份验证:通过要求提供用户名和密码,基本身份验证可确保客户端标识的真实性。基本身份验证应始终与单向SSL 配合使用,否则用户名和密码可能会被心怀恶意的第三方截取。要同时确保客户端标识和服务器标识的真实性,应使用单向SSL。
3)双向SSL:通过客户端数字证书,双向SSL 将服务器身份验证、数据加密和客户端身份验证组合在一起。
6、基于角色的安全
(1)含义
通过对资源(Web Service、表示层页面、Java 控件等等)的访问权限限制于仅被授予了特定安全角色的那些用户,从而确保Web 资源的安全。
(2)基本的策略
要限制访问的权限,需要设置以下两种测试,候选用户必须通过这些测试才能访问某些资源:身份验证流程(确定用户的标识和组成员资格)和授权流程(确定用户是否具备访问特定资源所需的角色成员资格)。
(3)身份验证流程
首先使用身份验证流程测试候选用户。身份验证流程通常是登录流程,它将要求候选用户提供用户名和密码。如果候选用户成功通过此质询,将授予该用户一组标识:其中一个标识是其用户名标识,其他标识是一组该用户具有其成员资格的组。用户的用户名标识和组标识称为用户的“委托人”:可将这些委托人视为一组凭据,用户在访问某些由授权流程所保护的资源时需要提供这些凭据。
(4)授权流程
通过身份验证流程建立了用户的标识和委托人之后,授权流程将确定允许该用户访问哪些资源。
在授权流程中,将测试用户是否已被授予了访问受保护资源所需的角色。如果这些用户已被授予所需角色,则他们可以访问资源;否则,将被拒绝访问。如果用户的一个委托人已被授予了特定角色,则该用户也被授予了该角色。委托人由一组角色-委托人映射授予角色。
角色-委托人映射是在部署描述符配置文件中定义的。因此,应用程序代码可以不依赖于
其部署环境:应用程序代码仅引用访问其资源所需的一组角色,而不引用任何特定的用户、组或委托人。而这些将在包含角色-委托人映射的部署描述符中被引用。
7、WebLogic Workshop 中的作用域角色
(1)三个不同的作用域
使用WebLogic Workshop 定义的角色和角色-委托人映射可以具有:
1)应用程序作用域(在应用程序的application.xml / weblogic-application.xml 文件中定
义)
2)应用程序作用域角色包含较窄的Web 应用程序和EJB 作用域。这意味着可以在授权
流程中使用应用程序作用域角色,以保护应用程序内的任何资源。
3)Web 应用程序作用域(在项目的web.xml / weblogic.xml 文件中定义)
Web 应用程序作用域角色仅适用于单个Web 项目内的资源
4)EJB 作用域(在EJB 的ejb-jar.xml / weblogic-ejb-jar.xml 文件中定义)
EJB 作用域角色仅适用于单个EJB 内的资源。
(2)三种作用域的角色及相应部署描述符
8、设置所保护的Web资源和授权
(1)在web.xml文件中设置如下的项目以定义受保护的Web 资源
通过在Web 资源(如Web 应用程序或Web Service)上放置安全约束,可以将该资源定义为受保护的资源。安全约束由web.xml 文件中的
注意:使用
例如,假设您编写了Web 项目myWebProject,并且该Web Service 中包含名为myWebServiceMethod 的方法。
1)下列
2)下列
3)下列
(2)weblogic.xml 文件中实现角色到Webogic服务器中的“用户”委托人的映射我们通过将下列
9、用户名/密码身份验证
(1)概述
用户名/密码身份验证通过要求用户提供有效的用户名/密码来建立用户标识,因为只有预期用户才知道该用户名/密码。
可根据各种身份验证提供程序服务对该用户名/密码对进行核对。默认的身份验证提供程序由WebLogic Server 提供,但也可根据需要使用其他提供程序。
注意:
1)用户名/密码身份验证应始终与SSL 协同使用。如果不使用SSL,将通过HTTP 协
议传输用户名和密码,而该协议仅使用64 位加密来隐藏用户名和密码,心怀恶意的人可以比较容易地截取该消息并对其进行解码。因此,您应该始终将基本身份验证与SSL 一同使用,因为SSL 使用128 位加密。
2)除用户名/密码身份验证外,还可使用数字证书身份验证。
(2)WebLogic 服务器提供的基本身份验证
使用由Web 浏览器提供的标准登录屏幕。该方式具有容易实现的优势,但由于登录页面由浏览器软件提供,因此开发人员无法控制登录页面的外观及感觉。
(3)WebLogic 服务器提供的表单身份验证
使用由开发人员提供的自定义登录屏幕。表单身份验证易于实现,且开发人员可以控制登录屏幕的外观及感觉,但它并不适用于所有情况。
表单身份验证不应该用于确保页面流中单个页面和方法的安全。这是因为基于表单的身份验证依赖于对用户进行往返于受保护资源的重定向操作,但页面流不支持往返于页面流内同一位置的重定向操作。因此,表单身份验证应仅用于在用户进入页面流之前(而不是进入页面流之后)建立该用户的标识。
[Web前端技术教学]《基于Web标准的网页设计与制作》试题及答案 一、单项选择:(每题1.5分,共69分) 1.html语言中,创建一个位于文档内部的锚点的语句是:( ) A.
B. C. D. 答案:B 4.在编辑网页时,按“Ctrl+Shift+空格键”插入的HTML源代码为:( )
A.   B. C. &sbnp D. &sbnp; 答案:B 5.
《WEB开发技术》期末考卷(A) 1、是用于创建Web应用程序的平台,此应用程序可使用IIS和.NET Framework在Windows 服务器上运行。 A.C# https://www.doczj.com/doc/e915134287.html, C.Visual https://www.doczj.com/doc/e915134287.html, D.Visual https://www.doczj.com/doc/e915134287.html, 2、文件由Visual https://www.doczj.com/doc/e915134287.html,创建,用于定义Web应用程序的配置。A.Web.Config B.Global.asax C.AssemblyInfo.cs D.ASPX 3、打开SQL Connection 时返回的SQL Server 错误号为4 060,该错误表示: 。 A. 连接字符串指定的服务器名称无效 B. 连接字符串指定的数据库名称无效 C. 连接超时 D. 连接字符串指定的用户名或密码错误 4、在DataSet中,若修改某一DataRow 对象的任何一列的值,该行的DataRowState 属性的值将变为。 A. DataRowState.Added B. DataRowState.Modified C. DataRowState.Detached D. DataRowState.Deleted 5、关于网页中的图像,下列说法正确的是。 A.图像由标签开始,由结束 B.图像标签的href属性用于指定图像链接的URL C.src属性的值是所要显示图像的URL D.以上全都是错的 6、如果希望单击超链接打开新的HTML页面,则需将target属性设为。 A._blank B._top C._parent D._self 7、为创建在SQL Server 2000 中执行Select 语句的Command 对象,可先建立到SQL Server 2000 数据库的连接,然后使用连接对象的方法创建SqlCommand 对象。 A. CreateObject B. OpenSQL C. CreateCommand D. CreateSQL 8、为了在程序中使用ODBC .NET 数据提供程序,应在源程序工程中添加对程序集______ 的引用。 A. System.Data.dll B. System.Data.SQL.dll C. System.Data. Odbc.dll D. System.Data.OleDb.dll 9、DataAdapter 对象的DeleteCommand 的属性值为null,将造成: A. 程序编译错误 B. DataAdapter 在处理DataSet 中被删除的行时,将引发异常 C. DataAdapter 在处理DataSet 中被删除的行时,这些行将被跳过不处理 D. DataAdapter 在处理DataSet 中被删除的行时,将出现对话框询问用户如何处理该行 10、下列语句的值是。 String str=”中华人民共和国”; Str.IndexOf(“人”); A.1 B.2 C.3 D.4 11、应用程序中所有页面均可以访问变量。 A.Session B.Application C.Server D.ViewState
杭州电子科技大学《Web应用开发实践》课程设计手册姓名 学号 设计小组长 其他设计 小组成员 指导教师 设计时间至 杭州电子科技大学管理学院编制
《Web应用开发实践》课程设计指导书 一、任务和目的 本课程设计是在学习“Web应用开发技术”课程的基础上,应用https://www.doczj.com/doc/e915134287.html,程序设计技术,通过开发一个模拟型的小型动态网站,以加强学生对https://www.doczj.com/doc/e915134287.html,程序设计技术的掌握,并提高应用该技术解决实际问题的能力。 二、内容和要求 1、案例题目(具体要求请见后面的附录。) (1)网上购物商店 (2)在线考试系统 (3)博客网站的设计与开发 2、设计要求 ●系统分析和设计 (1)根据数据库结构设计画出E-R图。 (2)画出功能结构图。 (3)简单的界面设计。 (4)对可能遇到的技术问题的考虑及解决方案。 ●页面编程和调试。 ●小组内的系统联调。 ●撰写课程设计小结。 3、开发工具:https://www.doczj.com/doc/e915134287.html, 4、数据库:ACCESS 三、日程安排(为时2周)
四、考核方式和成绩评定 1、对案例题目(1):以小组为单位,每组3-4人,自由组合,推举一位组长总体负责,小 组内协同完成课程设计;对案例题目(2):只能由一人单独组成一个小组独立完成;对案例题目(3):每组由2人组成一个小组独立完成,其中一人为组长。 2、成绩评定分为:优、良、中、及格和不及格五档,小组内组长的成绩可适当上浮,其他 组员的成绩相同。 3、课程设计成果上交方法 成果包括:课程设计小结、程序源代码和数据库,按班级及小组上交到“网上邻居/.../192.168.185.10/https://www.doczj.com/doc/e915134287.html,/班级号”下面,每组一份即可,每组的子目录名应取为组内所有同学姓名,用“-”连接。(不必交打印的文档。) 五、课程设计小结的主要内容 1、组内各成员所承担的任务说明。 2、数据库E-R图和功能结构图。 3、系统使用的说明。 4、设计和开发的心得体会。 5、系统的特点。 六、备注 1、本课程设计也可应用其它如ASP、PHP或JSP等动态网页开发工具。 2、本文档可在“网上邻居/.../192.168.185.10/Web资料”目录中下载。
《软件工程》与《web开发技术》 课程设计报告 课程名称:WEB开发技术 课设题目:基于B/S项目的学生信息管理系统 所在班级:08计算机科学与技术 分组:第 16 组 姓名:苑国永 20081611068 陈红勤 20081611076 李卓 20081611041 指导教师:曹莹刘冲杜光辉 河北金融学院 二○一一年六月 摘要
随着学校规模的不断扩大,学生数量急剧增加,有关学生的各种信息也成倍增长。面对如此庞大的信息量,开发学生信息管理系统来提高学生管理工作的效率就成为必然。通过该系统,可以做到信息的规范管理、科学统计和快速查,从而减少管理方面的工作量。 本文主要介绍了学籍信息管理系统的主要任务,阐述了开发该系统用到的关键技术,如采用B/S结构,使用JSP编程、利用mysql建立数据库、采用HTML,javascript等编程技术。 本系统是采用 B/S模式进行开发的,系统的用户权限有两种:学生和系统管理员,不同权限用户登入到不同的操作界面。该系统主要由学籍维护、班级管理、成绩查询等功能模块组成,本文具体介绍了各功能模块所包含的小模块的功能,学籍维护模块主要是对学生的基本信息进行添加、查询、修改、删除;班级管理模块主要是对系别、专业、计划、班级、课程进行添加、删除、维护;成绩查询模块主要是对课程成绩进行添加、删除、录入成绩,以及学生进行查询成绩等功能。 关键字: 学生信息管理; B/S; JSP; mysql ABSTRACT Along with the school scale unceasing expansion, the student quantity sharp
《Web开发技术》模拟题 一、单项选择题 1、下列哪个标记包含文档信息,包括它的标题、使用的脚本文件、样式定义和文档的描述? B a)
b) c) d)b)
d)Link 13、调用一个特定JavaScript函数的语法是什么?C a)call function
考试科目:《Web数据库开发技术》() 期末考试试卷(A) 专业姓名学号___ __ 二、填空题:(每空1 分,共 24 分) 1.常用的Web服务器有:服务器、服务器和服务器等。 2.在JSP中,对象的作用域有、、和。3.JSP注释类型有和。 4.JSP的脚本元素包括、和。5.Response对象的来源是。6.对于每个用户都共享同一个对象的是对象,而每个用户分别适用不同对象实例的是对象。 7.非可视化Bean分为和。 8.通过实现接口可实现JavaBean的持久化。 9.JavaBean通过和来读取和设置属性值。10.Servlet的优点有、、 和。 二、单选题:(每题 2 分,共 20 分) 1.下列描述中,只有()是错误的。 A、JSP提供了多种语言支持。 B、JSP提供了多种平台支持。 C、JSP采取编译执行的方式,极大地提高了运行性能。 D、JSP提供跨平台支持,也可以在UNIX下执行。 2.以下文件后缀中,只有()不是静态网页的后缀。 A、html B、htm C、shtml D、jsp 3.在page指令中,()属形式可以在页面中重复的属性。 A、language B、buffer C、import D、autoFlush
4.以下选项中,哪一项不是JSP指令() A、page B、import C、include D、taglib 5.以下选项中,哪一项不是JSP的一种组织结构() A、脚本元素 B、指令 C、页面 D、注释 6.能够获取当前页信息并调用页面方法的对象是()。 A、request B、page C、pageContext D、session 7.以下操作中,()是与使用JavaBean无关的。 A、jsp:include B、jsp:useBean C、jsp:setProperty D、jsp:getProperty 8.以下方法中,哪个方法不是HTTPServelt类的方法()。 A、doGet B、doService C、doPost D、doDelete 9.以下类中,哪个类不是javax.servlet和javax.servet.http包中提供的类或借口()。 A、Servlet B、BaseServlet C、GenericServlet D、HTTPServlet 10.以下容器中,哪个不是J2EE定义的容器() A、JSP容器 B、Servlet C、JavaBeans容器 D、EJB 三、简答题:(每题 8分,共 32 分) 1.首次加载JSP页面时,将经历哪几个阶段? 2.比较Java Servlet与Applet的异同? 3.JSP与Servlet的区别? 4.JSP有哪些内置对象,作用是什么?(列举出5个即可)
Web应用开发技术 实验报告 专业:计算机科学与技术 班级: 学号: 姓名:
一、设计题目 个人网站 二、目的 1、本次设计是学生在学完ASP动态网站开发课程后的一次实践性很强的课程设计,是对ASP进行动态网站开发所学知识的综合运用。 2、掌握使用ASP技术进行网站开发设计。 3、通过本次实习,使学生加深所学知识内容的理解,并能积极地调动学生的学习兴趣,结合实际应用操作环境,真正做到理论与实际相结合。 三、功能需求描述 此网站可以对主人留言,来发表自己的心情,也可以把自己的联系方式写入其中,达到和睦相处、心灵的驿站的目的等。 四、总体设计
五、详细设计 (一)、我的主页 此页面为网站的主页,通过发布新心情,点击通讯录可以查看通讯录好友信息,点击留言板可以查看好友留言。 主要代码: