zamis 5 лет назад
Родитель
Сommit
fdc5f38dc7
2 измененных файлов с 23 добавлено и 7 удалено
  1. 17 3
      src/lib/service/xss/xssOption.js
  2. 6 4
      src/server/routes/page.js

+ 17 - 3
src/lib/service/xss/xssOption.js

@@ -1,12 +1,26 @@
 class XssOption {
 class XssOption {
 
 
-  constructor(config) {
+  // constructor(config) {
+  //   const recommendedWhitelist = require('./recommended-whitelist');
+  //   const initializedConfig = (config != null) ? config : {};
+
+  //   this.isEnabledXssPrevention = initializedConfig.isEnabledXssPrevention || true;
+  //   this.tagWhiteList = initializedConfig.tagWhiteList || recommendedWhitelist.tags;
+  //   this.attrWhiteList = initializedConfig.attrWhiteList || recommendedWhitelist.attrs;
+  // }
+
+  constructor(config, crowi) {
     const recommendedWhitelist = require('./recommended-whitelist');
     const recommendedWhitelist = require('./recommended-whitelist');
     const initializedConfig = (config != null) ? config : {};
     const initializedConfig = (config != null) ? config : {};
 
 
     this.isEnabledXssPrevention = initializedConfig.isEnabledXssPrevention || true;
     this.isEnabledXssPrevention = initializedConfig.isEnabledXssPrevention || true;
-    this.tagWhiteList = initializedConfig.tagWhiteList || recommendedWhitelist.tags;
-    this.attrWhiteList = initializedConfig.attrWhiteList || recommendedWhitelist.attrs;
+    // if (!crowi.configManager.getConfig('markdown', 'markdown:xss:isEnabledPrevention')) {
+    //   this.isEnabledXssPrevention = false;
+    // }
+
+    this.tagWhiteList = initializedConfig.tagWhiteList || crowi.xssService.getTagWhiteList() || recommendedWhitelist.tags;
+    this.attrWhiteList = initializedConfig.attrWhiteList || crowi.xssService.getAttrWhiteList() || recommendedWhitelist.attrs;
+
   }
   }
 
 
 }
 }

+ 6 - 4
src/server/routes/page.js

@@ -234,12 +234,14 @@ module.exports = function(crowi, app) {
 
 
     // const Xss = require('../../lib/service/xss/index');
     // const Xss = require('../../lib/service/xss/index');
     // const XssOption = require('../../lib/service/xss/xssOption');
     // const XssOption = require('../../lib/service/xss/xssOption');
-    // const option = new XssOption(crowi.config); // {}
-    // const xss = new Xss(option);
+
+    // const xssOption = new XssOption(crowi.config, crowi); // {}
+
+    // console.log(xssOption);
+    // const xss = new Xss(xssOption);
+    // console.log(xss);
     // const preventXssRevision = xss.process(page.revision.body);
     // const preventXssRevision = xss.process(page.revision.body);
     // page.revision.body = preventXssRevision;
     // page.revision.body = preventXssRevision;
-    const preventXssRevision = crowi.xssService.process(page.revision.body);
-    page.revision.body = preventXssRevision;
 
 
     renderVars.page = page;
     renderVars.page = page;
     renderVars.revision = page.revision;
     renderVars.revision = page.revision;