escape in ABAP and JavaScript

简介:

ABAP

IF_HTTP_UTILITY~ESCAPE_URL

JavaScript

开源的sanitizer库,Google搞的。

https://www.npmjs.com/package/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>

本文来自云栖社区合作伙伴“汪子熙”,了解相关信息可以关注微信公众号"汪子熙"。

相关文章
|
6月前
|
JavaScript 前端开发
javascript escape()和unescape()区别
javascript escape()和unescape()区别
43 1
|
7月前
|
JavaScript 前端开发 API
如何使用 JavaScript 代码连接部署在 SAP ABAP 服务器上的 OData 服务试读版
如何使用 JavaScript 代码连接部署在 SAP ABAP 服务器上的 OData 服务试读版
35 0
|
10月前
|
JavaScript 前端开发 安全
《现代Javascript高级教程》JavaScript中的编码方法:escape、encodeURI和encodeURIComponent的深入理解
JavaScript中的编码 在编写JavaScript代码时,我们常常需要处理URLs,这时候理解JavaScript中的escape,encodeURI和encodeURIComponent函数就显得尤为重要。这些函数用于将特殊字符转化为能在URL中安全传输的形式。本文将详细介绍这三个函数的用法和区别,以帮助你更准确的处理URL编码问题。
65 0
|
XML Web App开发 监控
使用 JavaScript 上传 PDF 和 Excel 等二进制文件到 ABAP 服务器并进行解析
使用 JavaScript 上传 PDF 和 Excel 等二进制文件到 ABAP 服务器并进行解析
441 0
使用 JavaScript 上传 PDF 和 Excel 等二进制文件到 ABAP 服务器并进行解析
|
Web App开发 存储 监控
不使用任何框架,手写纯 JavaScript 实现上传本地文件到 ABAP 服务器
不使用任何框架,手写纯 JavaScript 实现上传本地文件到 ABAP 服务器
159 0
不使用任何框架,手写纯 JavaScript 实现上传本地文件到 ABAP 服务器
|
JavaScript 前端开发
使用ABAP和JavaScript代码生成PDF文件的几种方式
使用ABAP和JavaScript代码生成PDF文件的几种方式
使用ABAP和JavaScript代码生成PDF文件的几种方式
|
存储 分布式计算 算法
JavaScript, ABAP和Scala里的尾递归(Tail Recursion)
这是Jerry 2021年的第 12 篇文章,也是汪子熙公众号总共第 283 篇原创文章。 今天是2021年1月20日,看看历史上的今天都发生了什么。 2004年1月20日,第一个公开版本的Scala发布。
121 0
JavaScript, ABAP和Scala里的尾递归(Tail Recursion)
|
前端开发 JavaScript Java
ABAP和JavaScript的懒加载,单例和桥接模式的实现和比较
ABAP和JavaScript的懒加载,单例和桥接模式的实现和比较
ABAP和JavaScript的懒加载,单例和桥接模式的实现和比较
|
JavaScript 前端开发 Java
JavaScript escape/unescape 编码的 Java 实现
    /** * JavaScript escape/unescape 编码的 Java 实现 * author jackyz * keep this copyright info while using this method by free * ...
762 0