escape in ABAP and JavaScript-阿里云开发者社区

开发者社区> 开发者小助手-bz6> 正文

escape in ABAP and JavaScript

简介: escape in ABAP and JavaScript
+关注继续查看

image.pngimage.pngimage.pngpublic 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 = "\n" +

               "\n" +

               "\n" +</div><div data-lake-id="5e169e7036a231779066744f189db803">                "h1 {color:blue;}\n" +</div><div data-lake-id="36cdea5c31c140d664f5a8d04d3f4f9c">                "\n" +

               "\n" +

               "\n" +

               "

A heading

\n" +

               "\n" +

               "";

       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));

   }

}image.png

版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。

相关文章
C 语言项目_项目流程|学习笔记
快速学习 C 语言项目_项目流程
6 0
mysql事务隔离级别
mysql事务隔离级别
11 0
SpringBoot时间格式化的5种方法!(9)
SpringBoot时间格式化的5种方法!(9)
6 0
SpringBoot时间格式化的5种方法!(2)
SpringBoot时间格式化的5种方法!(2)
4 0
Bootstrap 起步|学习笔记
快速学习 Bootstrap 起步
6 0
SpringBoot时间格式化的5种方法!(3)
SpringBoot时间格式化的5种方法!(3)
8 0
详解使用VueJS开发项目中的兼容问题
详解使用VueJS开发项目中的兼容问题
13 0
前后端分离 -- 深入浅出 Spring Boot + Vue 实现工程项目进度管理系统 Vue不过如此~
前后端分离 -- 深入浅出 Spring Boot + Vue 实现工程项目进度管理系统 Vue不过如此~
7 0
1853
文章
0
问答
来源圈子
更多
+ 订阅
文章排行榜
最热
最新
相关电子书
更多
《2021云上架构与运维峰会演讲合集》
立即下载
《零基础CSS入门教程》
立即下载
《零基础HTML入门教程》
立即下载