SAP NetWeaver开发者指南.doc_第1页
SAP NetWeaver开发者指南.doc_第2页
SAP NetWeaver开发者指南.doc_第3页
SAP NetWeaver开发者指南.doc_第4页
SAP NetWeaver开发者指南.doc_第5页
已阅读5页,还剩40页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

SAP NetWeaver 开发者指南版本: SAP NetWeaver 2004s 安全编程-ABAP 文档版本 1.0 2006年5月SAP AG Dietmar-Hopp-Allee 16 69190 Walldorf Germany T +49/18 05/34 34 24 F +49/18 05/34 34 20 Copyright 2005 SAP AG. 版权所有.本出版物的任何内容未经SAP AG直接允许不能以任何形式和任何目的进行复制和传播. 此处包含信息的变更可未经事前告知.由SAP AG和其发行人标记的部分软件产品包含其他软件厂商的专利软件组件.Microsoft, Windows, Outlook, 和 PowerPoint 为微软公司注册商标.IBM, DB2, DB2 Universal Database, OS/2, Parallel Sysplex, MVS/ESA, AIX, S/390, AS/400, OS/390, OS/400, iSeries, pSeries, xSeries, zSeries, z/OS, AFP, Intelligent Miner, WebSphere, Netfinity, Tivoli, 和Informix为美国国际商用机器公司在美国和其他国家的商标或者注册商标.Oracle为甲骨文公司注册商标UNIX, X/Open, OSF/1, 和 Motif 为Open Group注册商标. Citrix, ICA, Program Neighborhood, MetaFrame, WinFrame, VideoFrame, 和 MultiWin为Citrix Systems, Inc商标或者注册商标. HTML, XML, XHTML 和W3C为W3C商标或者注册商标, WWW联盟, 马萨诸塞州理工学院. Java 为Sun Microsystems, Inc注册商标. JavaScript为Sun Microsystems, Inc注册商标, 在为由Netscape发明并且实现的技术license下使用.MaxDB为MySQL AB, 瑞典 商标SAP, R/3, mySAP, mySAP.com, xApps, xApp, SAP NetWeaver, 以及其他在此提及的 SAP产品和服务,包括其相应的标示为SAP AG在德国和全球若干其他国家的商标或注册商标. 所有其他被提及的产品和服务名均为其各自公司的商标. 包含在此文档中的数据仅用于资料目的。国家产品说明可能不同。资料可未经通知进行修改。资料由SAP AG和其关联公司(“SAP Group”)仅为资料目的提供,没有任何形式的代表或担保,并且SAP Group将不对有关资料的错误或遗漏负责。对于SAP Group产品和服务的唯一担保为那些在附带于产品和服务上的直接担保声明书中进行声明的部分,如有可能。此处的任何内容不能理解为构成额外担保。免责条款本产品的部分组件基于Java. 在这些组件中的任何代码改动可能会引起无法预料的严重功能错误,因此为表现地禁止,由于这些组件的任何不可编辑。任何随附本产品的Java 源代码仅由SAP支持服务使用并且不得以任何途径进行修改或变更。关于SAP开发者网络的文档:你可以参考文档于:/irj/sdn/devguide2004s 目 录安全编程-ABAP 4 目的4 目标人群4 关于文档4 免责申明5安全编程 6 密码安全6 安全商店和转寄机制(SSF)9 安全日志 11SAP病毒扫描接口 15安全用户接口 21 跨站点脚本(XSS) 21SQL注入 30输入验证 35规范化 38目录贯穿 40URL编码和操纵 43Cookie操纵 46更多信息49免责声明50安全编程-ABAP“安全就像是给你的车加上刹车。刹车的目的不是来让你停下来:而是使你变得更快!” -Gene Spafford 目的本文档提供一个关于开发基于SAP NetWeaver平台的安全应用程序的概览。描述了共通的需要密切关注的安全性错误和缺陷以及安全过程以使你的应用程序运行地更安全。 目标人群本文档的目标人群为开发基于SAP NetWeaver平台的应用程序的ABAP开发人员。本指南主要针对在顾客,顾问公司以及合作伙伴的IT部门的开发人员。 关于本文档本文档分为如下部分: 安全编程o 密码安全o 安全商店和转寄机制(SSF)o 安全日志o SAP病毒扫描接口 安全用户接口o 跨站点脚本(XSS)o SQL注入o 输入验证o 规范化o 目录贯穿o URL编码和操纵o Cookie操纵针对上述每一点首先介绍其安全弱点。然后提出任何存在于SAP NetWeaver平台的标准解决方案,包括需要被用到的功能块和接口。如果在SAP NetWeaver平台中没有可用的方案,那么将提出对于可采取的适当的安全措施的建议。此外,通过对现存文档的合适链接样例代码将被提供。声明本文档中关于安全编程的全部描述和全部样例代码(在本条款下文引用为“示例”)仅仅出于演示的目的,并未在所有条件下经过充分的测试。因此,SAP不保证或者暗示其可靠性、适用性以及功能。您必须自行承担使用这些示例的风险和责任,SAP将不对使用这些示例带来的损失负责,除非这些损失是由SAP的重大疏忽或故意误导所导致的。安全编程实现安全开发人员一个常见的问题就是缺少时间,他们总是为设计、功能、性能、可用性等问题伤透脑筋,因此几乎很少有时间来思考安全方面的问题以及可能不安全的软件设计和软件技术;而另一方面,攻击者们却有用他们全部的时间来思考软件系统的弱点。一个聪明的设计肯定是一个好的开始,然而仅此却不足以得到安全的软件,软件实现也有其诀窍。在接下来的章节中,我们将帮助你编写安全的代码。本文还将特别阐述一些常见错误和缺陷,以及已被验证的过程。密码安全描述密码是人们非常熟悉的一种验证用户和系统身份的方法。相对于其它更安全的方式,比如说智能卡或者生物扫描仪,密码更简单也更便宜。它提供了一种简单而直接的保护系统或者帐号的方式。然而,缺点也是显而易见的。密码破解是计算出或者破坏密码从而对系统或者帐号进行未授权访问的过程。许多密码都不是随机的而很容易被猜出来。一个更有技术含量的方法是通过网络嗅探器监视通过网络传送的原始数据并且截取其内容,包括密码。而且,一旦攻击者可以获取网络传输中或者一个不安全的密码存储地中的加密的密码字符串,他们还可以尝试离线破解密码。使用基于密码的认证方法来保护系统时,需要考虑下列几个方面。我从SAP NetWeaver平台中得到什么?基于密码的身份识别和认证的全部过程是这样的:首先,应用程序请求用户确认身份,通常是用户的帐号名称;然后,系统读取该用户的密码,计算其加密值,这个值是一个随机的字符串,用来防止攻击者尝试已知字典中的单词,有些密码组件还清除存储密码的内存;最终,系统检查用户输入的密码的加密值是否和以及存储在系统中的密码加密值是否匹配。如果是,该用户就被验证通过了。SAP NetWeaver平台也提供一个如上所述的验证机制。通常地,推荐使用SAP NetWeaver平台已经提供的验证机制,而不是自己实现。我需要做什么?上面描述的问题使得你必须小心处理你的用户ID和密码。如下的建议可以帮助你防止未经授权者访问你的系统:1. 有密码用明文显示的么? 不要使用明文显示密码而使用星号代替。2. 有密码使用明文保存和传输的么? 用明文传输的密码容易被截获。更好的方法是使用安全网络通讯协议来传送密码。 不要在明文中保存密码。 防止管理员获取密码。使用安全的加密函数以防止逆向破解密码。 SAP NetWeaver平台使用安全的加密值来存储密码。 不要发明你自己的代码去加密原始密码。3. 有密码被硬编码到源代码中么? 使用类似一次性密码的技术。 在中心函数中应用一个可改变的密码,例如事务SM59。 不要发明你自己的加密算法。4. 有密码被记录在日志/协议/跟踪文件中么? 不要使用HTTP GET请求,而应该使用POST请求,因为GET请求的所有的参数都是在URL中可见的。通常,你应该避免为每个请求都传送密码。你可以使用安全的方法,比如数字证书。 考虑Web服务器在日志中记录所有的URL。 根据设置的不同,密码也可能在跟踪的时候以一种可读的形式被显示。5. 内存中的密码不再被使用时是否被覆写? 确保覆写内存中的密码,否则它们甚至在程序终止后还存在于内存中从而能够被恶意程序读取。6. 是否用户ID和密码既没有被预先配置也不能在程序开始运行时通过下拉菜单调出? 最好避免使用任何下拉菜单来输入用户ID和密码。这一点对于密码来说尤为重要。7. 是否所有的密码,ID以及用户名都可以被改变? 不可改变的ID和密码常常成为对一个程序进行攻击的起点。更多信息1 安全编程注意事项 ( “密码安全”章节 ) /irj/servlet/prt/portal/prtroot/docs/library/uuid/4ab8b3bb- 0601-0010-7b82-e392df20392a 安全存储和转发机制 (SSF) 描述你可以利用数字签名和文档加密来保障文档的安全性。这些文档将被安全存储和转发机制(SSF)视为独立的对象加以保护。也就是说,文档的安全性与它们的存储地址以及传递方式无关。你可以在任何数字文档和消息中使用数字签名,如同在书面文件上签名一样。数字签名唯一地标识了文档和消息的签署者。这是不可伪造的同时也保护了文件的完整性。如果文档在签署了数字签名以后被修改,那么数字签名就不再有效。而文档的签署者对曾经签过的数字签名是无法否认的。另外, 你可以加密文档,使得只有经过授权的接收者才能够浏览文档内容。数字签名和文档加密的功能属于公共密钥技术。公共密钥技术建立在密钥对使用的基础上;密钥对中一个是私有密钥另一个为公共密钥。私有密钥是保密的,公共密钥则根据需要开放。更多有关公共密钥技术的详细信息,请查阅Public-Key Technology SAP Library 。 我能从SAP NetWeaver平台中得到什么?SAP NetWeaver平台提供了安全存储和转发Secure Store & Forward (SSF) 机制作为保护SAP任意数据的内部方法。SAP应用程序可以用SSF机制来确保数据的完整性,真实性和保密性。通过SSF的功能,你可以在数据和数字文档被保存在数据存储器或者通过(可能)不安全的通讯途径发射前,包裹好这些数据。这些数据不是必须保留在SAP系统中;如果你在SAP系统中采用安全的格式保存了数据,那么即使你将这些数据导出系统,数据在安全格式中仍将保持不变。更多关于安全存储和转发机制(SSF)的详细信息,请查阅Secure Store & Forward Mechanisms (SSF) and Digital Signatures SAP Library。 局限性SSF需要使用第三方的安全产品来实现功能。作为默认的供应者,我们在SAP系统中提供了SAP Security Library (SAPSECULIB) 。 但是,SAPSECULIB只提供数字签名。对于数字信封,密文,或者加密硬件(例如智能卡或者加密盒),你需要使用外部的安全产品。SAP免费提供了SAP 密码库(SAP Cryptographic Library),你也可以使用经过证明的其他合作伙伴的产品。SAP密码库可以在SAP服务市场下载/download. 但是由于要遵守德国出口法规,所以并不能对所有用户开放。合作伙伴的产品信息,请查阅SAP认可合作伙伴(/softwarepartner). 在其他国家也有关于使用密码和数字签名的法律。这些法律目前尚有争议有可能变动。你需要注意法律变动对你的应用可能带来的影响,并且需要了解任何进一步开发的信息。 我需要做什么?SSF库的ABAP部分已经在用ABAP编写的应用程序中使用了。它支持的功能包括新建和验证数字签名(PKCS#7),以及加密和解密文档。SSF库在ABAP中的的应用从SAP Basis 4.0开始。SSF在ABAP中提供了下列属于SSFG 功能组的功能模块: SSF_SIGN / SSF_KRN_SIGN 新建数字签名 SSF_VERIFY / SSF_KRN_VERIFY 验证数字签名 SSF_ENVELOPE / SSF_KRN_ENVELOPE 加密文档 SSF_DEVELOPE / SSF_KRN_DEVELOPE 解密文档这些SSF功能模块的详细描述以及调用方法的代码,请查阅Secure Store and Forward (SSF) Programmers Guide. 更多关于数字签名的介绍,请查阅Digital Signatures in SAP Applications. 更多信息1. Digital Signatures and Encryption SAP Library 2. Secure Store & Forward Mechanisms (SSF) and Digital Signatures SAP Library 3. SAP系统中的数字签名原则/form/sapnet?_SHORTKEY=01100035870000668332&_SCENARIO=01100035870000000112&_OBJECT=011000358700000952762004E 4. 安全存储和转发开发员指南 /sapdownload/011000358700003611992003E/SSFProgrammersGuide.pdf 5. 安全存储和转发/数字签名 用户手册 /irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/Secure%20Store%20and%20ForwardDigital%20Signatures%20User%20Guide.pdf 6. 安全存储和转发(SSF)API 详述/irj/servlet/prt/portal/prtroot/com.sap.km.cm.docs/library/Secure%20Store%20and%20Forward%20SSF%20API%20Specifications.pdf 安全日志描述SAP系统为系统管理、监控、问题解决和审计等不同用途保留了多种日志。当发生问题时,审计和日志对监控系统的安全性和追踪事件是很重要的。我从SAP NetWeaver平台中得到什么?SAP系统为不同的数据类型提供了不同的数据变化日志框架。另外,事件日志有多个框架。下面的表格是所有框架的概览。数据类型/事件框架1事件安全审计日志、系统日志、应用日志2仓储数据版本管理3定制数据表协议4主数据标准改变文档5事务数据(注意:没有提供框架。事务数据的日志没有太大用处。)我需要做什么? 日志是用来追踪数据变化和系统事件,验证SAP系统提供的日志机制是否满足你的需求。最好优先使用标准的功能,这样你就可以自动继承框架的所有功能(例如,改变文档的存档程序)。a) 安全审计日志 SAP Web 应用服务器提供了安全审计日志。这个工具是为需要了解在SAP系统中发生的与安全有关事件细节的审计员设计的。安全审计日志功能可以被激活或解除。激活安全审计日志后,系统会为客户认为与审计有关的活动保存日志。审计分析报告可以使用这些信息。 安全审计日志可以洞察每日的工作过程和系统日志。如失败的登录尝试和事件启动。审计日志的主要目标是记录: 与SAP系统环境安全相关的改变,如: 用户主数据的改变 审计架构的改变 可见的处理提示信息: 例如: o 成功和失败的登录对话进程o 成功和失败的远程功能调用登录进程o 应用服务器的启动和终止o 文件下载 事件处理跟踪信息:例如: o 成功和失败的执行命令的启动o 成功和失败的程序的启动o RFC 正在调用功能模块 更多的相关信息请参见 由SAP 知识库提供的安全审计日志b) 系统日志 除安全审计日志之外, 传统的系统日志也同时保存在SAP的系统中。 系统日志为系统中的事件处理提供更技术层面的记录, 例如, 回滚、 数据库读取错误、和系统非正常终止等。 系统日志的运行是连续性的, 不可以任意取消。每个事件都记录在标有AU 的系统日志信息条目中。 (6.10 版本以上的为 BU 或 CU)。更多的相关信息请参见 由SAP 知识库提供的系统日志c) 应用日志 应用日志是收集提示信息,处理异常, 和程序错误的一种工具。这些信息都被组织管理起来并可以在日志中查看。应用日志可以提供一些有用的信息,提醒用户应用程序执行的情况。 在标准的SAP系统中, 你可以在QM 里找到应用日志。例如: 如果你计划在自己的程序里,以应用日志这种工具作为记录事件处理情况的基础机制,那么值得注意的是,应用日志只能临时存储事件的处理信息。 一些能够帮助完善系统安全性的可供参考的历史数据需要能够长时间的保存,因此, 不建议保存在应用日志中。 可以将这些基础数据保存到SAP 提供的变更文档中。 对于那些想要将应用日志整合到应用程序中的程序员, 可以找到所有功能模块更详细的参考资料。还有一些关于调用对象 BC_SBAL的方法,以及通过执行SA38处理程序SBAL_DOCUMENTATION的回调过程的概况介绍。 更多的相关信息请参见 SAP开发者指导手册中的应用日志(BC-SRV-BAL)d) 审计信息系统 (Audit Information System) 请不要将审计信息系统(AIS)同安全审计的概念想混淆。 审计信息系统(AIS)是为方便和改进审计工作而设计的, 主要为外部审计师和内部审计师们使用,商业审计师,系统审计师,安全管理员,以及系统管理员都会发现AIS对他们是一种非常有帮助的工具。 e) 版本管理 在修改调整对象存储集合时, 你可以采用版本管理功能。版本管理的目的就是跟踪所有关于对象存储集合所有的修改。从而系统自动创建相应的新的版本。更多的相关信息请参见 SAP知识库中的版本管理。f) 表协议通过对日志中配置过的对象的分析,客户可以解答下面的问题:o 谁改过配置的设定?o 什么时候做过哪些改动?更多的相关信息请参见 SAP知识库中的配置对象的日志。要使日志文件生效,必须预先设置以下条件:. o 在系统环境配置中的 rec/client 参数要设定为允许数据日志o 日志对表设置为生效关于技术层面的设置请参见报 SAP 知识库中的生效和解除表改变的日志。 在开发应用程序中, 你必须决定激活哪些表的日志功能。你能通过处理命令SE11在表的技术配置中设定表改变的日志记录功能为生效状态。 g) 标准变更文档 许多业务对象频繁变化。以此,跟踪并记录这些变化是非常有用而且是必要的。 这种日志记录在变更文档中。更多的相关信息请参见 SAP知识库中的变更文档和当变更文档发生时创建事件。 怎样使用日志框架?在使用日志框架服务时,接下来的建议也许会有帮助:1) 请注意,日志的目的是追踪和记录放生在业务对象上的事件。2) 所有的数据和文档必须分配给相关的处理。3) 永远不要将密码记录在没有加密过的文本文件中。4) 日志中不应包括潜在的机密数据, 例如, 信用卡帐号,社会安全保障帐户。而是应该将这些敏感的数据以一种特别保护的日志形式保存, 而且要通过授权检查。 不要做什么? 象之前提到的, 不要创建自己的日志框架。 取而代之, 采用SAP 系统提供的日志机制。 如果没有找到符合要求的标准功能, 尽量将你特殊需求包含进现存的标准框架内。 所有SAP系统中现存的标准日志框架提供以下特点:SAP 病毒扫描接口描述病毒扫描每次把潜在的污染数据通过输入渠道放入SAP 系统中. 可能的输入渠道有: 从计算机的前端或文件系统上传到应用服务器 通过互联网上传文件 文件交互通过RFC, XML, XI 我可以从SAP NETWeaver 平台得到什么?病毒扫描接口(VSI) 架构允许你把不同的产品系统和平台结合起来, 对应用程序进行病毒扫描. 对于SAP一侧, 在整合的病毒扫描接口中 采用不同的VSILIB 层来兼容ABAP 和JAVA, 并处理不同平台的附属部分。 更多信息见 Architecture of the Virus Scan Interface SAP Library. 图1: 病毒扫描接口元素上图阐明了SAP 病毒扫描接口(SAP VSI API) 的层次架构, 并指明哪些部分是由SAP 提供, 哪些是由相关合伙人提供. 1. 日志和存档需要客户化配置, 因为每个客户有不同的需求. 在系统中, 甚至日志记录的写入可以是激活和未激活的.2. 由于追述的原因, 日志应该是可读和决不可变的. 确保对于拒绝未被授权的日志访问进行检查.3. 日志应该包含信息关于: 日志原因 用户, 谁创建日志记录 日期和时间, 什么时候日志记录被写入的 日志记录发生时的系统和客户端4. 考虑到怎样处理日志, 如 它们被删除或是存档5. 考虑日志文件的创建会影响性能. 其次, 许多用户并行访问日志表. 这样会导致锁住状态的出现即使是多个用户对不同的应用表进行操作.更多信息1. SAP 网络应用服务器安全指南 (章6.4 审查 和日志)/form/sapnet?_FRAME=CONTAINER&_OBJECT=011000358700001994272004E 2. SAP 文档 关于BAL_* 应用日志功能模块 在mySAP ERP 2005 系统中, 事务代码 SE38, 执行程序SBAL_DOCUMENTATION. 图2:病毒扫描接口的层次结构SAP病毒扫描接口(SAP VSI API):第三方产品可以通过扫描引擎直接进入或者间接的是用一个病毒扫描适配器。 包含对扫描引擎 配置和初始化的功能 对每个病毒扫描提供参数和数据 核对结果ABAP 或Java 应用程序用SAP病毒扫描接口的专门的类和方法起动病毒扫瞄, 反之, 叫病毒扫瞄服务器或J2EE 引擎直接地使用RFC 。我需要做什么?在使用SAP的病毒扫瞄服务器前, 您必须维护在实施指南中的数据。1扫描器群扫描器群捆绑一起一个对扫瞄引擎的许多病毒扫瞄服务器或企业扩展程序实施(BADI VSCAN_INSTANCE)。在这个水平上, 可以维护一套包含初始化参量为病毒扫瞄服务器的配置参量。注意, 客户化的配置是跨客户的因为受控个体(病毒扫瞄服务器或BADIs) 是跨客户的。详细的信息见定义扫描器群 SAP图书馆 。2病毒扫瞄服务器病毒扫瞄服务器是RFC 服务器, 它通过被认证的病毒扫瞄适配器与扫瞄引擎的连接。它可以作为应用服务器一部分分开地开始的可执行或作为独立程序和通过RFC联络与应用服务器交互。病毒扫瞄服务器入口总属于一个扫描器群。病毒扫瞄服务器维护的细节屏幕显示扫瞄引擎类型和支持的特点。可以客户化服务器的手动触发, 停止和重起。客户化的详细信息见定义扫描器群 SAP图书馆 。病毒扫瞄接口可以集成到自己的开发系统通过类CL_VSI的方法。详细的信息参见集成病毒扫瞄接口到客户系统 SAP图书馆 。此外, 以下SAP Note有助于澄清关于病毒扫瞄接口的问题: SAP Note 817623, SAP Note 786179 。3. 病毒扫瞄配置每个拥有病毒配置的应用也许在定做,映射扫描器群到病毒扫瞄服务器或被顾客定义的企业扩展时被创造。配置拥有SAP的命名空间/ 配置可以是: 标注为缺省的配置 激活或撤销 分配到参考的配置。更多信息见定义病毒扫瞄配置 SAP图书馆 。如果为病毒扫瞄接口创建客户化, 您可以通过类CL_VSI集成 VSI 到您的应用。为了在一个ABAP 程序中执行字节序列的病毒扫瞄, 要求以下步骤:1. 使用静态方法GET_INSTANCE 产生一个病毒扫瞄接口的实例, 根据指定的病毒扫瞄外形。每个实施VSI 的应用应该使用它自己的病毒扫瞄配置以便每个应用的病毒扫瞄功能可能被激活和被撤销。WHEN 1. * The system administrator has disabled virus scanning * for * my application /MYPACKAGE/MYFUNCTION. * What must happen now depends on whether virus scanning * is optional or mandatory for your application. * In the first case, you can ignore it, in the second * case * you must react with an error. This exception has a * SY-Message that leads the user to the right place in * customizing. WHEN OTHERS. * This situation is always an error (misconfiguration) * of the Virus Scan Interface. It must be reported. * Use the SY-Message that always accompanies the * exception. ENDCASE. 2. 现在你可以执行出现在XSTRING这个对象里的数据病毒扫描。例子:* Retrieve scanner instance CALL METHOD lo_scanner-scan_bytes EXPORTING if_data = lf_data if_do_clean = ABAP_TRUE IMPORTING ef_scanrc = lf_scanrc EXCEPTIONS OTHERS = 1. 检测结果大致是以下几种情况:1. 返回值 LF_SCANRC 有这个值 CL_VSI= CON_SCANRC_OK.这表明检测工作被成功执行,并且没有发现任何受损部分。2. 返回值LF_SCANRC 有其他值,最常见的错误是CON_SCANRC归结于 CL_VSI这个类。 采用CL_VSI=GET_SCANRC_TEXT 这个方法,注解可以从错误代码中获取。通常来讲,这种情况被当作是检测失败。 18/503. 抛出异常:这表明配置错误或者其他的多种错误发生在检测过程中。错误信息通常被通报,并且此次检测也被视作失败。如果参数IF_DO_CLEAN 是ABAP_TRUE这个值,清除动作将被执行。一旦成功执行,参数EF_DATA将返回EF_SCANRC = CON_SCANRC_CLEAN_OK. 如果参数IF_DO_CLEAN是ABAP_FALSE这个值,它应该只被检查。除了前面提到的方法SCAN_BYTES以外,还有两种在CL_VSI类里面的方 法被用作病毒扫描: SCAN_FILE方法在应用服务器上扫描本地的文件。 SCAN_ITAB方法用于扫描行类型是X和C的 内部表。对于关于DDIC的对象,表,虚表,搜索帮助,消息,功能模块,类集合和关于病毒扫描的事务处理,可以通过查看在ABAP工作台里的在线文档获取。关于整合病毒扫描接口到客户发展的信息可以从Integrating the Virus Scan Interface into Customer Developments SAP Library获取。一个被注释的原始代码为VSI 的应用为被上装从工作站的扫描文件可以从Commented Example Program SAP Library获取。名为RSVSCANTEST 的报表包含在系统执行这项任务以适当的形式, 能并且被使用作为示范对象。注意以下的问题:如果输入渠道不实施病毒扫瞄接口, 那么后续应用也许实施它自己的VSI 。但它应该被避免当进入系统的时期被同时扫描, 以防组分提供数据已经执行病毒扫瞄。安全审计日志由VSI 触发类CL_VSI 自动地创造词条在安全审计日志为被发现的传染和扫瞄错误, 与以下信息一起: 关于大致情况。 步骤中允许扫描器小组的侦查。 这被发现了的病毒(如果可在内部扫瞄引擎中找到病毒身份)。 用户名和时间戳。被采伐的消息位于信息分类VSCAN, 使用系统记录消息BU8 和BU9 (被创建在SE92) 。severities 各自地被设置为“高”,“低”,而审计组被设为“混杂的”。 19/50 详细信息1. SAP向导,RFC 目的地的配置: /sapidb/011000358700003298652004E.sim SAP向导,病毒扫瞄服务器的配置: /sapidb/011000358700003298672004E.sim SAP向导,病毒扫瞄踪: /sapidb/011000358700003298692004E.sim 2. SAP Note 786179 : (数据保密产品: 应用在antivirus 区域) 3. SAP Note 817623 (集成病毒扫瞄在SAP的应用). 4. SAP NetWeaver 病毒扫描接口(NW-VSI) /irj/servlet/prt/portal/VSI%20Interface%20Documentation.pdf 安全用户接口 网络应用程序带来的问题是,当你想吸引用户来访问你的网站并与你的网络程序进行交互时,如果用户进行了意想不到的的输入(比如脚本命令),从而使应用程序不能正确的处理.则攻击者可能迫使服务器或者客户端/浏览器端去执行一些无意识的操作。 因此,开发一个安全的网络应用程序的首要考虑是从来不要信任和假定任何从外部进来的信息。所有安全决定都应该有一个潜在假设,即任何在理论上可以被人或事所应用的都可以在现实中被应用。举例来说.如果一个攻击者用可执行的SQL语句作为输入并且应用程序没有将这些输入过滤掉,他就可以通过这种方法访问内部的数据库。(SQL 指令植入式攻击)下面几节介绍了针对网络应用程序的不同的攻击方法的例子并提供了对如何在安全编程中避免这些攻击的方法。交叉资料站脚本攻击Cross-Site Scripting (XSS)描述 交叉资料站脚本攻击(XSS)是通过植入恶意脚本代码或者其他间接的方式,如转向其他服务器,逻辑攻击如替代图片或者改变样式表,从而用来作用于相关的HTML页面。攻击者找到特定的HTML页面,在这些页面用户的输入将被写回到HTML,比如登陆界面会第二次显示当登陆失败时的信息。这些例子展示了潜在的对XSS攻击的安全漏洞,既用户输入的内容可能被写回到html页面。 由于html是基于标记这个事实,浏览器甚至可以编译和执行Javascript 或者包含恶意脚本命令的ActiveX 控件。这些命令在其他人打开这些HTML页面的同时被执行。ActiveX 控件攻击的结果如下: 黑客可以读取/更改/删除一些其他用户本地硬盘上的资料. 应用程序可能在其他用户权限下执行。 黑客可能安装其他的应用程序如木马程序. Java或者 VBscript 潜在攻击结果可能是: 使浏览器进入一个死循环. 使浏览器通过覆盖document.location.href属性显示一个不同的页面. 获取所有用户的输入(信用卡号等)并发送到黑客的服务器上. 获取用户的cookies (截获session, 修改cookie). 在标记中插入新的脚本标记作为输出。比方说,在特定事件发生的时候增加一个新的事件处理器。例子代码1: Click me! 代码2: 代码3: 我需要做什么? 避免XSS攻击的基本规则: 输入约束. 设计一个代码表(如. charset = ISO-8859-1)详细的说明哪些字符代码是有问题的. 过滤掉依赖于解释器的关键字(HTML, 浏览器,文件系统等.). 限定那些特别允许使用的字符代码的变量. 规范化, 举例来说,即在进行输入验证之前你必须先把它放入一个适当的标准表.对这个问题的详细描述参考 “规范化”这一章. 输入验证.所有外部的输入必须是可用的: 输入项的长度, 数据类型, 范围(如. 日期, 邮政编号), 白名单, 只包含那些已知的没有问题的字符代码. 如果用户允许在输入项内输入一个链接,必须对URL的域进行限制并且只允许选用验证过的URL. 在HTML页面下,必须将输入的值封装在引号标记内。这将保证黑客输入的值(如“HUGO”)在两个之间。也只有这个情况恶意代码可以通过一个简单的对”的样式过滤被发现. 例子: 忽略引号标记就会使一个XSS攻击变得容易。因为攻击者不需要把内容放在任何标记内,因此也就更难从HTML页面内过滤恶意代码。不好的例子: 输出编码. 对用户的输入进行编码,这样任何输入的脚本将被阻止以可执行的形式传给用户。 根据输出的内容转化关键字符, 如. “”转化为> , “”转化为". 用SAP NetWeav

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论