`
JerryWang_SAP
  • 浏览: 1026068 次
  • 性别: Icon_minigender_1
  • 来自: 成都
文章分类
社区版块
存档分类
最新评论

escape in ABAP and JavaScript

阅读更多

# ABAP

IF_HTTP_UTILITY~ESCAPE_URL

# JavaScript

开源的sanitizer库,Google搞的。

sanitizer

sanitizer.escape('your dirty string');

用于C4C:

在Java里使用这个JS library:

public class CajaSanitiser {
    private final ScriptEngine engine;
    private final Bindings bindings;
    public CajaSanitiser() throws IOException, ScriptException {
        this.engine = new ScriptEngineManager().getEngineByName("js");
        this.bindings = engine.getBindings(ScriptContext.ENGINE_SCOPE);
        String scriptName = "com/google/caja/plugin/html-css-sanitizer-minified.js";
        try (BufferedReader reader = getReader(scriptName)) {
            engine.eval(reader);
        }
        String identity = "function identity(value) {return value;}";
        engine.eval(identity);
    }
    private BufferedReader getReader(String name) {
        return new BufferedReader(new InputStreamReader(
                getClass().getClassLoader().getResourceAsStream(name)));
    }
    public String sanitise(String htmlSource) throws ScriptException {
        bindings.put("src", htmlSource);
        // You can use other functions beside 'identity' if you
        // want to transform the html.
        // See https://code.google.com/p/google-caja/wiki/JsHtmlSanitizer
        return (String) engine.eval("html_sanitize(src, identity, identity)");
    }
    public static void main(String[] args) throws Exception {
        CajaSanitiser sanitiser = new CajaSanitiser();
        String source = "<html>\n" +
                "<head>\n" +
                "<style>\n" +
                "h1 {color:blue;}\n" +
                "</style>\n" +
                "</head>\n" +
                "<body>\n" +
                "<h1>A heading</h1>\n" +
                "</body>\n" +
                "</html>";
        System.out.println("Original HTML with CSS:");
        System.out.println(source);
        System.out.println();
        System.out.println("Sanitised HTML:");
        System.out.println(sanitiser.sanitise(source));
    }
}

Maven dependency:

<dependencies>
    <dependency>
        <groupId>caja</groupId>
        <artifactId>caja</artifactId>
        <version>r5127</version>
    </dependency>
</dependencies>
0
0
分享到:
评论

相关推荐

    Abap programming

    近年来,SAP引入了ABAP in JS的概念,允许在JavaScript环境中执行ABAP代码。这种方式下,ABAP逻辑可以被封装在JavaScript模块中,提高了代码的复用性和灵活性。ABAP in JS结合了两种语言的优点,简化了前后端的交互...

    SAP RFC Programming in ABAP

    根据给定的文件信息,我们可以深入探讨"SAP RFC Programming in ABAP"这一主题,这是一个在SAP系统中非常重要的技术领域,特别是在企业级应用集成和跨系统数据交换方面。 ### SAP RFC编程基础 SAP Remote Function...

    ABAP751 ABAP - Keyword Documentation

    Terms in the ABAP environment, and their explanations. ABAP - Index Alphabetical index of all language elements. ABAP - Keyword Directory Alphabetical keyword directory for searching by topic...

    SAP Note 176336: Flat and deep structures in ABAP

    ### SAP Note 176336: Flat and Deep Structures in ABAP #### 概述 SAP Note 176336 主要关注 ABAP 编程语言中的扁平(flat)结构与深层(deep)结构的概念。在 ABAP 中,结构是一种复杂的数据类型,用于组织和...

    BC415 Communication Interfaces in ABAP

    SAP BC415 Communication Interfaces in ABAP

    SAP NetWeaver ABAP and Adobe Forms

    ### SAP NetWeaver ABAP 和 Adobe Forms:深入解析 #### 一、SAP与Adobe的战略合作 SAP与Adobe之间的战略合作始于2004年,随着SAP NetWeaver的推出,这一合作关系得到了进一步加强。Adobe提供的技术为SAP ...

    abap plug-in eclipse

    以下是对"abap plug-in eclipse"的详细知识解释: 1. **Eclipse IDE**:Eclipse是一款开源的、跨平台的集成开发环境,广泛用于Java开发,但通过安装各种插件,也可支持C++, Python, ABAP等其他语言。其特性包括源...

    Enabling ABAP in Eclipse

    【Enabling ABAP in Eclipse】是一项让ABAP开发者能够在Eclipse集成开发环境中进行开发的工作。这一功能的引入为ABAP程序员提供了更为现代化和灵活的开发工具,与传统的SAP Development Workbench相比,Eclipse提供...

    TCP-IP socket programming in ABAP_in_TCPIPABAP_

    在ABAP编程环境中,TCP/IP套接字编程是实现与外部系统进行网络通信的重要手段。TCP/IP协议族是互联网上最广泛使用的通信协议,而ABAP作为SAP系统的编程语言,支持通过TCP/IP进行socket通信,允许ABAP程序直接与任何...

    advanced and generic programming in abap

    ### 高级与通用编程在ABAP中的应用 #### 概述 本篇文章将深入探讨高级及通用编程在ABAP中的应用。通过本教程的学习,读者将能够掌握如何使程序更具灵活性、编写能够处理任意结构数据的通用服务、区分不同类型的...

    Developing UI5 Apps Purely in ABAP.zip

    标题“Developing UI5 Apps Purely in ABAP”指出,这个压缩包可能包含关于如何在ABAP环境中开发UI5应用程序的资源。UI5是SAP提供的一个开源框架,用于构建企业级的用户界面,而ABAP(Advanced Business Application...

    Providing and consuming Web Services in ABAP

    2. **发布Web服务**:可选择将WSDL文档发布到UDDI(Universal Description, Discovery and Integration)目录或其他公开位置。 3. **发现Web服务**:客户端应用可以搜索并找到所需的Web服务。 4. **开发客户端应用**...

    ABAP Workbench Concepts and Tools

    以下是对"ABAP Workbench Concepts and Tools"的详细解析: ### 1. ABAP Workbench介绍 ABAP工作台是SAP NetWeaver的一部分,它提供了完整的开发工具集,包括源代码编辑器、调试器、测试工具、版本控制和项目管理等...

    ABAP in BW

    ABAP in BW是SAP BW(商务仓库)系统中用于编程和增强后端功能的ABAP(高级企业应用编程)技术的专称。本知识点将从ABAP在BW中的应用、性能优化、增强机制以及数据处理等方面进行详细解读。 首先,ABAP in BW的学习...

    Remote Function Calls in ABAP

    本培训课程"Remote Function Calls in ABAP"旨在教授开发人员如何有效地利用RFC进行跨系统交互。 RFC是一种标准化的接口技术,使得ABAP程序能够调用远程系统中的函数模块,就像它们是本地函数模块一样。这在分布式...

    SAP ABAP in 21 days.

    ### SAP ABAP in 21 Days #### 一、引言与学习目标 《SAP ABAP in 21 Days》是一本旨在帮助初学者快速掌握SAP ABAP编程语言的指南书。这本书通过为期三周的教学计划,系统地介绍了ABAP的基础知识和技术要点。作者...

    RFC Programming in ABAP

    **ABAP RFC编程详解** ABAP (Advanced Business Application Programming) 是SAP系统中的一种编程语言,主要用于开发企业级的应用程序。在ABAP中,Remote Function Call (RFC) 是一种核心功能,它允许不同系统间...

    SAP_ABAP_4.7.rar_SAP abap4_abap_abap chm_abap 4_abap4

    手册中可能包含报表开发、GUI屏幕设计、BADI(Business Add-In)应用、RFC(Remote Function Call)调用等实例,帮助开发者将理论知识转化为实践技能。 综上所述,"SAP_ABAP_4.7.CHM"是学习和精通SAP ABAP 4.7开发...

Global site tag (gtag.js) - Google Analytics