没有合适的资源?快使用搜索试试~ 我知道了~
理论计算机科学电子笔记142(2006)47-62www.elsevier.com/locate/entcs一种用于执行访问控制策略的Web服务体系结构Claudio Agostino Ardagna1、Ernesto Damiani2、Sabrina De Capitani di Vimercati3和Pierangela Samarati4米兰大学信息技术学院26013 Crema,意大利摘要对于希望通过Internet公开产品和服务的组织来说,Web服务既是一个挑战,也是一个机会。 Web服务技术提供了一个环境其中服务提供者和消费者可以通过交换基于XML的文档来发现彼此并进行业务交易。但是,任何使用XML和Web服务的组织都必须确保只有发送适当XML内容的正确用户才能访问其Web服务。随着Web服务在现代经济中的迅速发展,用于控制Web服务访问的访问控制策略规范成为一个新兴的研究领域。本文旨在帮助您了解Web服务安全的基本概念以及实现安全Web服务的要求。我们描述了一个Web服务体系结构的设计和实现,用于执行访问控制策略,我们的设计的总体原理和一些具体的选择进行了讨论。关键词:Web服务,安全性,互操作性,分布式系统,XML1引言在全球互联网上发布信息已成为现代经济的基本要求。Web服务,它是为此而开发1电子邮件地址:ardagna@dti.unimi.it2电子邮件地址:damiani@dti.unimi.it3电子邮件地址:decapita@dti.unimi.it4电子邮件地址:samarati@dti.unimi.it1571-0661 © 2005 Elsevier B. V.在CC BY-NC-ND许可下开放访问。doi:10.1016/j.entcs.2004.09.04448C.A. Ardagna等人理论计算机科学电子笔记142(2006)47目的,代表了一种新技术,它允许通过网络交换信息,使用标准协议并允许在异构体系结构之间进行通信。今天的Web服务基本上基于四个标准[8]:可扩展标记语言(XML)[14],简单对象访问协议(SOAP)[17] , Web 服 务 描 述 语 言 ( WSDL ) [18] 和 通 用 发 现 , 描 述 和 集 成(WSDL)[19]。虽然XML Web services是开发复杂的基于Web的应用程序的一种日益重要的范例,但其底层技术的原始规范甚至没有提到安全性。因此,很容易理解为什么安全性是当前XML Web服务未来发展的最大关注点具体而言,需要解决两个主要问题:• 将对XML Web服务的访问限制为授权用户;• 保护在Web服务环境中交换的XML消息的完整性和机密性。乍一看,这两个问题似乎都可以通过依赖已经用于网站的安全技术来直接解决。例如,HTTPS(即,安全套接字层协议上的HTTP)通常用作加密私人信息的工具。它还可以提供身份验证,但它仅用于向客户机验证Web服务器的身份。它能够向服务器验证客户机身份,但大多数Web服务器都没有为此设置。然而,HTTPS不能提供例如授权,也就是说,它不能规范什么,用户试图进行并选择性地允许/不允许该操作。结果是HTTPS是一个很好的解决方案,可以为客户端提供强大的加密和服务器身份验证,反之亦然。 此外,HTTPS是一种应用程序的安全性。最近,技术行业一直在研究各种基于XML的安全语言,为Web服务提供全面和统一的安全解决方案。这些语言包括安全断言标记语言(SAML)[28]和Web服务安全规范(WS- Security)[20]。SAML是一个基于XML的框架,用于交换OASIS组织开发的安全信息。SAML规范定义了如何使用XML表示安全凭证(SAML中的断言SAML旨在实现对组织内和跨公司的应用程序的安全单点登录,并支持许多不同的身份验证机制,如用户名和密码的组合、SSL客户端和SSL客户端。C.A. Ardagna等人理论计算机科学电子笔记142(2006)4749Side证书、X.509证书等等。在主体身份验证之后,服务器SAML向发出初始请求的客户端返回特定的安全令牌。WS-Security规范由IBM、Microsoft和Verisign开发。WS-Security是一种使用XML对SOAP消息进行加密和数字签名它还提供了一种传递安全令牌的机制,用于SOAP消息的身份验证和授权安全令牌的典型示例是用户名和密码令牌,其中用户名和密码作为文本包含在内。保护Web服务需要考虑的另一个重要方面是访问控制,其解决方案需要研究用于指定访问控制规则的策略以及用于表达它们的语言和用于实施它们的体系结构。已经介绍了几种用于对来自多个源的分布式异构资源进行访问控制的建议[3,4,5,6]。使用XML的两种相关访问控制语言是WS-Policy [21]和XACML [25]。基于WS-Security,WS-Policy包括一组在WS-PolicyAssertions [23]中定义的一般消息传递相关断言,以及一组与支持WS-SecurityPolicy [22]中定义的WS-Security规范相关的安全策略断言。除了WS-Policy,WS-PolicyAttachment [24]定义了如何将这些策略附加到Web服务或其他主题(如服务定位器)。可扩展访问控制标记语言(XACML)[25]是最近OASIS标准化的结果,提出了一种基于XML的语言来表达和交换访问控制策略。XACML旨在用XML表达授权策略,这些策略针对的对象本身也是用XML标识的。该语言可以表示大多数策略表示机制的功能在本文中,我们提供了一个概述的Web服务技术,并说明了安全的Web服务的基本概念。然后,我们描述了一个Web服务架构的设计,用于执行访问控制策略,并提供了一个基于WS-Policy作为访问控制语言的实现示例[2]。然而,请注意,我们的建议完全独立于特定的访问控制语言,因此可以与任何其他解决方案一起使用。本文其余部分的组织如下。第2节说明了WS-Policy的基本特征。第3节介绍了我们的架构。第4节描述了如何实施访问控制。最后,第5节给出了我们的结论。50C.A. Ardagna等人理论计算机科学电子笔记142(2006)47值意义wsp:必需断言必须应用于主体。如果不满足断言,则将发生故障或错误wsp:拒绝不支持断言,如果存在将导致失败。wsp:可选可以应用断言,但不是必需的wsp:观察到将应用断言,并通知服务的请求者将应用策略。wsp:忽略断言被处理,但被忽略;由于它被指定,因此不会采取任何操作。请求者被告知该策略将被忽略。Fig. 1. 属性Usage2WS-Policy概述Web服务策略框架(WS-Policy)提供了一个通用的策略模型和一个灵活可扩 展 的 语 法 来 描 述 和 传 递 策 略Web 服 务 [21] 。 其 他 规 范 , 如 WS-PolicyAssertions[23]和WS-SecurityPolicy[22],为它们的域提供了这种语法的具体应用。策略是一个或多个策略断言的集合,这些断言表示访问与断言相关联的策略主题所必须满足的个人偏好、要求、能力或其他属性。 策略断言的XML表示称为策略表达式。sion。5元素wsp:Policy是策略表达式的容器。策略断言是类型化的,可以是简单的,也可以是复杂的。一个简单的断言可以与同一类型的其他断言进行比较,而没有任何特殊的约束。对它们的语义进行了思考。一个复杂的断言需要一个特定于断言类型的比较方法。断言类型可以用这样一种方式来定义,即断言是参数化的。例如,描述最大可接受密码大小(字符数)的断言可能会接受一个整数参数,指示最大字符数。相比之下,简单地指示需要密码的断言不需要参数;它的存在足以传达断言。 每一个断言与一个名为Usage的强制属性相关联,该属性指定应如何处理断言。图1展示了属性Usage的五个可能值及其含义。在存在用于授予给定访问的多个选择的情况下(例如,不同的认证机制),属性wsp:preference可用于在不同的选择中建立顺序属性的可能值5请注意,使用XML表示策略有助于异构平台和Web服务基础设施之间的互操作性。C.A. Ardagna等人理论计算机科学电子笔记142(2006)4751>wsse:Kerberosv5TGT/wsse:TokenType> wsse:UsernameToken/wsse:TokenType>Alice/wsse:> wsse:X509v3/wsse:TokenType> wsse:UsernameToken/wsse:TokenType>Alice/wsse:> (一)>wsse:X509v3/wsse:TokenType> wsse:UsernameToken/wsse:TokenType>Bob/wsse:> (b)第(1)款图二、政策(a)和相应的政策(b)的简单例子WSP:优先级是整数,其中更高的数字表示更高的优先级。WS-Policy还提供了一个名为wsp:PolicyReference的元素,可用于在不同策略之间共享策略表达式。从概念上讲,当存在引用时,它将被引用的策略表达式的内容替换。通过使用以下策略操作符组合策略断言:• wsp:All要求满足它的所有子元素• wsp:ExactlyOne要求恰好满足其子元素之一;• wsp:OneOrMore要求满足至少一个子元素。52C.A. Ardagna等人理论计算机科学电子笔记142(2006)47不指定策略操作符等同于指定wsp:All操作符。图2(a)显示了一个简单的策略示例,该策略声明如果提供了以下安全令牌中的一个,则授予访问权限i)一个X509证书和一个UsernameToken,带有Alice,ii)一个X509证书和 一 个 UsernameToken , 带 有 Alice , 或 者 iii ) 一 个 X509 证 书 和一 个UsernameToken,带有Bob。第三个选项对应于图2(b)中所示的被称为opts的引用3系统架构我们描述了我们的架构,用于执行访问控制策略[3]。所提出的架构满足以下要求。• 模块化:它包括不同的模块(即,下面描述的PAP、PEP和PAP模块),其可以由不同方实现,从而减少例如开发时间。• 策略语言独立性:它独立于用于指定限制的特定访问控制语言。因此,可以采用不同的访问控制语言,如WS-Policy(在我们的实现中使用)或XACML。• 可扩展性:可以通过添加模块轻松扩展,从而产生额外的控制级别(参见图4)。• 可重用性:架构• 高性能:它提供低时间响应,最终支持实时应用程序。• 硬件和软件独立性:它允许在不同的机器上和不同的操作系统上分布不同的模块。这种独立性与用于实现体系结构的编程语言有关。• 编程语言独立性:模块的开发人员可以使用首选的编程语言,没有任何限制。换句话说,开发人员可以选择首选的编程语言来实现我们的架构。如图3所示,该体系结构包括一个Enforcer模块,该模块完全封装了对各个Web服务的访问权限的计算,并为每个请求返回应该授予还是拒绝访问的决定。在内部,Enforcer由三个主要模块组成,这些模块被实现为Web服务[10]:C.A. Ardagna等人理论计算机科学电子笔记142(2006)4753图三. 系统架构• 策略决策点(PDP)模块接收访问请求并返回“• 策略评估点(PEP)模块与PAP交互,PAP封装标识适用策略所需的信息。然后,它根据适用的策略评估请求,并将最终决定返回给PDP模块。• 策略管理点(PAP)模块重试适用于给定访问请求的策略,并将其返回到PEP模块。这些模块的使用可以通过PDP-PEP-PAP的实例来调节。例如,如果PAP模块需要PEP模块的身份验证,则PAP模块必须创建新的PDP和至少一对PEP-PAP(参见图4)。客户端和服务分别代表提交访问请求的实体和目标服务。服务包含一组客户端可以调用的公共可用函数。为了固定思想并制作具体示例,下面我们考虑图5中所示的简单Web服务。这个Web服务包含两个函数,分别称为TemptureFAut和TemptureCAut,它们将华氏温度转换为摄氏温度,反之亦然。在本节的其余部分中,我们将描述系统组件。然后,我们描述如何处理客户端提交的访问请求3.1策略管理点(PAP)PAP模块是一个策略存储库,它为插入、更新和删除策略提供了一个管理接口此接口最重要的功能之一是,它可以防止插入无效策略和执行生成无效策略的更新操作:54C.A. Ardagna等人理论计算机科学电子笔记142(2006)47见图4。 瀑布认证图五. Web服务验证功能确保策略是格式良好的。PAP管理界面如图6所示。PAP模块调用通过以下函数实现公共类PAP:继承WebServicePublic Function PolicyMatch(ByVal service AsString,ByVal method As String)As String()C.A. Ardagna等人理论计算机科学电子笔记142(2006)4755⟩公共类PAP:继承WebService公共函数插入(ByVal服务作为字符串,ByVal方法作为字符串,ByVal策略作为字符串)...End Function公共函数修改(ByVal服务作为字符串,ByVal方法作为字符串,ByVal策略作为字符串)...End Function公共函数删除(ByVal策略为字符串)...End Function公共函数DeleteByService(ByVal服务作为字符串)...End Function公共函数DeleteByMethod(ByVal方法作为字符串)...End Function公共函数DeleteByServiceMethod(ByVal service As String,ByValmethod As String)...结束函数结束类见图6。 PAP模块...结束函数结束类此模块的主要目的是检索适用于给定访问请求的策略。PAP模块在存储库中执行搜索,基于所接收的参数的历史(例如, 服务名和可选的方法名)。在我们的实现中,存储库是一个关系数据库,其中包括一个名为PolicyRepository的表,表中有三个at-贡献:服务、方法和策略位置。 一个元组包含s1,m1,路径策略在表PolicyRepository中,声明策略路径策略是适用于服务s 1的方法m1(如果有)的策略。适用于给定访问的策略请求存储在数组中,然后返回给PEP模块。示例3.1考虑图5中所示的Web服务。相应的PolicyRepository如图7所示。它声明适用于服务TemperatureService的方法TemptureFAut的策略存储在/Policy/policy1.xml文件中。同样,适用的政策56C.A. Ardagna等人理论计算机科学电子笔记142(2006)47服务方法政策位置温度服务TemptureFAut/Policy/policy1.xml温度服务TemptureCAut/Policy/policy2.xml见图7。策略存储库示例到服务TemperatureService的方法TemptureCAut存储在/Policy/policy2.xml文件。3.2政策评价点PEP模块实现PAP模块返回的策略的实施。如果满足至少一个策略,则授予访问请求;否则拒绝访问。在后一种情况下,PEP模块向客户端返回一个指示错误的异常字符串(参见第4节)。PEP模块调用通过以下接口实现:Public Function Evaluation(ByVal MethodName AsString,ByVal theCallHeader As theHeaderClass)As Boolean...End Function更准确地说,PEP模块的工作原理如下。PEP模块创建一个SAXParser[15]来分析策略并迭代地执行它们。执行阶段可以生成两个可能的事件:i)策略满足,执行过程终止,访问请求被授予;ii)策略不满足,异常被引发并存储在向量中。为了验证策略是否满足,将评估策略中的所有断言。这个评估取决于断言类型和断言的子元素。在所有策略都被评估并且没有一个被满足之后,PEP模块选择具有最高优先级的异常并将其发送到服务。例3.2PEP模块对下面的断言类型求值如下。• 安 全 令 牌 。PEP 模 块 从 访 问 请 求 中 提 取其 类 型 是 在 属 性TokenType 中 指 定 的 类 型 的 所 有 元 素 ( 例 如 , UsernameToken 、X509SecurityToken 和 SecurityToken ) , 并 将 它 们 与 策 略 中 指 定 的SecurityToken元素进行比较。如果SecurityToken没有子元素,则如果访问请求包括与策略中指定的令牌类型相同的令牌,则断言被评估为 true 。 否 则 , 如 果 SecurityToken 具 有 一 些 子 元 素 ( 例 如 ,SubjectName、SubjectPassword、Password),则断言的计算结果为trueC.A. Ardagna等人理论计算机科学电子笔记142(2006)4757如果访问请求中指定的信息与这些子元素中包含的信息• MessageAge。SAXParse将与访问请求相关联的时间戳(或者更准确地说,创建日期)与当前日期和时间进行比较。如果这两个值之间的差异小于属性Age中指定的值,则断言被评估为true。• 语言SAXParse验证访问请求是否包含指定所请求语言的证书。3.3策略决策点PDP模块是服务和Enforcer之间的接口。 该服务创建一个PDP实例,并使用SOAP消息调用以下Web方法ResponsePublic Function Response(ByVal theHeader AstheHeaderClass,ByVal ServiceName AsString,ByVal MethodName AsString)作为布尔值返回MyPEP.Evaluation(ServiceName,MethodName,theHeader)End函数SOAP消息的主体用于传递目标服务名称和/或方法名称,并且头部可以用于指定附加信息(例如,用于向PDP认证服务的信息)。PDP模块实例化一个或多个PEP模块,其可以基于不同的策略储存库(PAP)。每对PEP-PAP之间的交互可以返回不同的决策; PDP模块定义了一个策略,用于确定如何根据每个PEP的响应计算最终决策。可以采用不同的决策标准,每种标准都适用于特定情况。一个自然和直接的决策策略是声明PEP模块提出的具有最高优先级的异常获胜,或者可以采用多数策略3.4异常处理当在评估客户端提交的访问请求期间出现异常时,系统不仅应捕获异常,而且还应将异常传达给客户端。这种通信应该以独立于平台的方式执行。为了实现这一点,我们利用了基于DOM的树结构[16]。直观地说,树的叶子是断言,内部节点是用于组合断言的布尔运算符(All,OneOrMore,ExactlyOne对应于and,or和xor)。PEP模块将树的叶子评估简化为true58C.A. Ardagna等人理论计算机科学电子笔记142(2006)47<?xml版本=”1.0“?> 图8.第八条。消息错误的XSD架构是假然后,使用用于真和假的常用布尔定律简化评估树。 如果访问请求被拒绝,Enforcer必须报告一个错误,指出访问请求被拒绝的原因。例如,这样的错误消息可以指定没有特定的证书或没有用户名-密码对。在我们的系统中,错误消息是XML格式的,并且相对于图8中所示的XSD模式是格式良好的。4访问请求强制执行我们现在更详细地描述强制执行。假设用户Alice发出对图5中所示的服务TemperatureService的方法TemptureFaut的访问请求。访问请求评估如下进行。C.A. Ardagna等人理论计算机科学电子笔记142(2006)4759邮政/QuoteService HTTP/1.1SOAP-Action=”http://www.acme.com/TemperatureService“Content-Type:text/xml; charset=“UTF-8”内容长度:nnnnMIEZzCCA9CgAwIBAgIQEmtJZc0. Alice/wsse:> <温度服务>32/TemptureFAut>温度服务> 图9.第九条。访问请求示例>wsse:UsernameToken/wsse:TokenType>Alice/wsse:> wsse:X509/wsse:TokenType><索赔>SubscriptionDate=索赔> 见图10。政策的一个例子• 客户端发出的访问请求被传递给所请求的服务。在我们的示例中,Alice发出了如图9所示的SOAP请求,为了简单起见,这里省略了名称空间• 然后,访问请求被传递到实例化一个或多个PEP模块的PDP模块使用第3.3节中说明的响应方法将请求重定向到PEP模块。• PEP模块将访问请求发送到PAP模块,PAP模块返回所有适用的策略。在我们的示例中,根据60C.A. Ardagna等人理论计算机科学电子笔记142(2006)47PolicyRepository表,PAP模块返回/Policy/policy1.xml中指定的策略, 如图 10 所 示。 它 指出 ,如 果 访问 请求 包括 带 有Alice的UsernameToken和声明特定订阅日期的X509证书,则授予访问权限• PEP模块然后评估由PAP模块返回的策略。如果访问被授予,则将决策发送到服务,服务反过来将响应返回给客户端。否则,将返回异常。在我们的示例中,图10中的策略评估为false,因为访问请求中包含的X509证书不包括任何关于订阅日期的信息。返回给客户端的错误消息如下。<错误报告><错误>需要订阅日期/错误>全部>错误报告>5结论基于XML的Web服务对于希望通过互联网公开产品和服务的组织来说是一个挑战和机会。在这种情况下,安全性是当前的主要关注点之一,目前正在进行几项计划,旨在实现支持XML Web服务的完整性、机密性和访问控制的标准化方法。在本文中,我们提出了一个Web服务体系结构的强制访问控制策略。最后,我们提到一些有趣的未来方向,以扩展我们的工作。• 整合。由于Enforcer的模块已经实现为Web服务,因此可以将我们的体系结构与一个可注册PEP、PAP和PDP的注册表集成在一起。例如,可信PAP模块可以使用PEP寄存器来搜索满足给定要求的特定PEP。• 认证验证。在我们的系统中,通过检查证书本身中包含的创建日期和到期日期来验证证书。我们架构的下一个发展可能包括认证机构(CA)。• 其他政策语言规范。 我们的体系结构是完全独立的,从特定的访问控制语言通过的。 我们可以使用基于其他语言(如XACML)实现访问控制策略实施的体系结构。C.A. Ardagna等人理论计算机科学电子笔记142(2006)4761• Java和开源我们的体系结构已经在Visual Basic中实现,可以安装在Windows机器上。但是,请注意,正如第3节中所讨论的,架构设计是与平台无关的。一个有趣的替代方案是基于Java服务实现一个开放源代码、平台无关的体系结构。6致谢这项工作部分得到了欧盟在FP 6/IST计划的PRIME项目内根据IST-2002-507591合同提供的支持,以及意大利MIUR在KIWI和MAPS项目内提供的支持。引用[1] Damiani,E.,S. De Capitani di Vimercati和P.Samarati,Towards Security XMLWeb Services,in Proc.2002年11月在美国华盛顿举行的2002年ACM XML安全研讨会上[2] 阿尔达尼亚,CA,和S. De Capitani di Vimercati,A comparison of modeling strategiesin definingXML based access control language , Computer Systems ScienceEngineering Journal,2004(即将出版)。[3] Bonatti , P. , 和 p.Samarati , A unified framework for regulating access andinformation release on the web,Journal of Computer Security,10,241-272.[4] Damiani,E.,S. De Capitani di Vimercati,S. Paraboschi和P. Samarati,《确保SOAP电子服务的安全》,国际信息安全杂志(IJIS),1,100-115,2002年2月。[5] 培根,J.,J.A. Hine,K. Moody和W.姚明,一种分布式OASIS服务的体系结构,在IFIP/ACM分布式系统平台和开放分布式处理论文集,哈德逊河流域,纽约,美国,2000年4月。[6] Koshutanski,H.,和F. Massacci,Web服务业务流程的访问控制框架,在Proc.2003年11月,弗吉尼亚州费尔法克斯举行的2003年ACM XML安全研讨会。[7] De Capitani di Vimercati,S.,和P.Samarati,访问控制:策略,模型和机制,安全分析和设计的基础,2001年。[8] 新 来 的 , E. , “Understanding Web Services : XML, WSDL, SOAP, and UDDI”,Addison Wesley,[9] Galbraith,B.,W. Hankinson,A.Hiotis,M.Janakiraman,D.诉普拉萨德河特里维迪,D. Whitney,2002年12[10] “网服务Architecturehttp://www.w3.org/TR/ws-arch/[11] 霍克河, 1998年62C.A. Ardagna等人理论计算机科学电子笔记142(2006)47[12] 布雷,T.,E. Maker,J.Paoli,and C. M. Spenberg-McQueen,//www.w3.org/TR/REC-xml网站, 2000年10[13] “阿帕奇 XML Projecthttp://xml.apache.org/[14] 布拉德利,N.,[15] “http://www.saxproject.org/。[16] http://www.w3.org/DOM/“Document Object Model (DOM)”,[17] Box,D.,http://www.w3.org/TR/SOAP“Simple Object Access Protocol (SOAP) 1.1”,[18] 钦 尼 奇 河 M. Gudgin , J.Moreau 和 S. Weerawarana , World” , Wide WebConsortium(W3C),http://www. w3.org/TR/wsdl12,2002年7月。[19] http://www.uddi.org“UDDI Technical White Paper”,[20] 阿特金森,B.,和G. Della-Libera等人,“Web services security (WS-Security)”,//msdn.microsoft.com/library/en-us/dnglobspec/html/ws-security.asp,2002年4月。[21] Box , D. , Web 服 务 策 略 框 架 ( WS-Policy ) 1.1 版 , http : //msdn 。microsoft.com/library/en-us/dnglobspec/html/ws-policy.asp, 2003年5[22] Della-Libera,G.,以及其他,http://msdn.microsoft.com/library/en-us/dnglobspec/html/ws-securitypolicy.asp,2002年12月。[23] Box,D.,http://msdn.microsoft.com/library/en-us/dnglobspec/html/ws-policyassertions.asp,2003年5月。[24] Box,D.,//msdn.microsoft.com/library/en-us/dnglobspec/html/ws-policyattachment.asp,2003年5月。[25] Box , D. , “OASIS 可 扩 展 访 问 控 制 标 记 语 言 TC” , http : //www.oasis-open.org/committees/tc home.php?wg焦距v =xacml。[26] 安布勒,S.,T. Jewell和E. Roman,[27] 布朗,N.,和C.Kindel,//www.globecom.net/ietf/draft/draft-brown-dcom-v1-spec-03.html网站。[28] “http://www.oasis-open.org/committees/OASIS Security Services TC(SAML)",www.example.com tc home.php?wg焦距v =安全性。[29] http://www.w3.org/XML/Schema“XML Schema”,
下载后可阅读完整内容,剩余1页未读,立即下载
cpongm
- 粉丝: 5
- 资源: 2万+
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- Java集合ArrayList实现字符串管理及效果展示
- 实现2D3D相机拾取射线的关键技术
- LiveLy-公寓管理门户:创新体验与技术实现
- 易语言打造的快捷禁止程序运行小工具
- Microgateway核心:实现配置和插件的主端口转发
- 掌握Java基本操作:增删查改入门代码详解
- Apache Tomcat 7.0.109 Windows版下载指南
- Qt实现文件系统浏览器界面设计与功能开发
- ReactJS新手实验:搭建与运行教程
- 探索生成艺术:几个月创意Processing实验
- Django框架下Cisco IOx平台实战开发案例源码解析
- 在Linux环境下配置Java版VTK开发环境
- 29街网上城市公司网站系统v1.0:企业建站全面解决方案
- WordPress CMB2插件的Suggest字段类型使用教程
- TCP协议实现的Java桌面聊天客户端应用
- ANR-WatchDog: 检测Android应用无响应并报告异常
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功