云服务器价格_云数据库_云主机【优惠】最新活动-搜集站云资讯

对象存储_快猫破解版百度云_哪家好

小七 141 0

openwebapplicationsecurity项目(OWASP)是一个在线社区,提供Web应用程序安全领域的免费文章、方法、文档、工具和技术。特别是他们发布了OWASP Top 10,详细描述了针对web应用程序的主要威胁。

在本文中,我们将面对ABAP开发人员在编程安全用户界面方面的职责。每个ABAP程序员都应该知道的简单规则很少。

以下各节介绍了Web应用程序用户界面中不同漏洞的示例,并解释了如何使用安全编程来防止这些漏洞。Web应用程序的问题在于,您希望用户访问您的站点并与应用程序交互。如果用户输入了意外条目,攻击者可能会导致服务器或客户端/浏览器执行意外操作。因此,开发安全Web应用程序的第一条准则是:

输入验证

每当软件处理输入时,都应该对其进行验证。它确保了高数据质量并防止意外输入。正确的输入验证应包括6个步骤:

步骤1:存在性和长度检查

步骤2:规范化

将输入变量的内容转换为其最简单和最短的表示形式。

步骤3:类型检查

步骤4:范围检查

步骤5:白名单筛选

白名单是包含允许项的表。

步骤6:黑名单过滤

黑名单是白名单的反面,由不允许的项目组成

上面可以看到白名单和黑名单的简单实现。当然,它的最终形状会根据您想要使用的情况而有所不同,但您可以在这里看到一个大致的想法。

A1–注入

SQL

目前,SQL注入通常是最常见的注入漏洞之一,在ABAP中也是如此。它包括攻击者插入恶意SQL查询。通过SQL注入,攻击者可以通过不同的方式影响数据库:读取敏感数据、修改内容甚至关闭数据库。

在SAP的情况下,正常的SELECT语句是安全的,不可能进行SQL注入攻击。但是,基于用户输入构建自己的SQL条件的动态SELECT语句易受SQL注入攻击。

由于语法检查,攻击者只能从表中获取所有记录。如果语法检查发现诸如"DROP"、"UNION ALL"等语句,就会产生错误

一般只使用普通的SELECT语句。不要使用本机SQL或动态选择,除非这是唯一的方法。如果这样做,请确保正确验证数据。可以使用白名单、黑名单、范围检查等

代码

ABAP代码本身可以直接注入。可以通过"插入报告"和"生成子程序池"语句来完成。

一般避免使用用户输入的动态程序生成。相反,创建带有参数的静态程序。如果动态程序是唯一的解决方案,执行正确的输入验证。

操作系统命令

操作系统命令注入比其他注入更危险。它们可以让攻击者访问受害者的操作系统。可能有via语句:"CALL'SYSTEM'ID'COMMAND'FIELD COMMAND"和"OPEN DATASET…FILTER"。

在本例中,您可以看到我们可以创建自己的命令并在服务器上执行。在这种情况下,这只是PING命令,但你肯定可以想象更危险的事情?

如果可能,应使用SXPG框架,而不是这两个选项。使用SM69翻译创建命令白名单,然后使用FM SXPG_COMMAND_EXECUTE调用它。

A3–敏感数据暴露

目录遍历攻击

在目录遍历中,攻击者操纵URL,使Web服务器执行或显示服务器上任何位置的文件内容。路径遍历攻击利用URL输入参数、Cookie和HTTP请求头中的特殊字符序列。

常见路径遍历攻击使用"./"字符序列更改URL中请求的文档或资源位置。尽管大多数Web服务器都阻止这种方法,"./"序列的编码可以绕过基本的安全过滤器。成功攻击的结果可能导致访问冗余信息或配置文件。

为防止ABAP程序中的路径遍历攻击:

除非没有其他替代方法,怎么查看大数据,否则不要实现基于用户输入的文件访问功能。访问文件系统时,请使用FM:FILE\u GET\u NAME–指定逻辑文件名并接收指向该文件的物理路径,文件\验证\名称–检查给定的文件名是否在指定的目录中。

A7–跨站点脚本(XSS)

JavaScript、HTML和CSS注入

跨站点脚本(XSS)是通过注入HTML或JS对Web应用程序前端客户端的攻击。每当应用程序动态创建其HTML、JavaScript或CSS内容时,XSS就会出现。然后,该源由受害者的Web浏览器呈现,并在受害者当前的身份验证上下文中进行解释。

在该示例中,我们看到用户输入通过HTTP请求传递到服务器,返利app开发,并进行处理和返回。这样用户界面就被攻击了。

XXS攻击会导致:

机密信息泄露操作应用程序的前端客户端(作为用户操作的结果)劫持应用程序模拟用户

防止XSS攻击的两种技术是:

输入验证-我们检查输入是否包含潜在危险的东西。我们可以使用黑名单和白名单。输入转换–将特殊符号编码为对应于每个特殊符号的非特殊字符。这有助于浏览器确定实际代码和潜在XSS攻击之间的差异。

编码的实现作为API提供两种变体:

对于SAP\u BASIS>=731,有从cl\u abap\u fromat类转义的内置函数在所有版本的SAP中,您都可以使用cl\U abap\U dyn\U prg类的方法。

可以编码:JavaScript、HTML、URL和CSS。

A9–使用具有已知漏洞的组件