https://www.mediawiki.org/wiki/Special:Code/MediaWiki/111842

Revision: 111842
Author:   au
Date:     2012-02-18 20:16:23 +0000 (Sat, 18 Feb 2012)
Log Message:
-----------
* Rudimentary CSS validation; +4 tests pass. (Bug 2304, 3244).

Modified Paths:
--------------
    trunk/extensions/VisualEditor/modules/parser/ext.core.Sanitizer.js

Modified: trunk/extensions/VisualEditor/modules/parser/ext.core.Sanitizer.js
===================================================================
--- trunk/extensions/VisualEditor/modules/parser/ext.core.Sanitizer.js  
2012-02-18 19:52:50 UTC (rev 111841)
+++ trunk/extensions/VisualEditor/modules/parser/ext.core.Sanitizer.js  
2012-02-18 20:16:23 UTC (rev 111842)
@@ -99,12 +99,25 @@
                        if ( kv.v.constructor === Array ) {
                                kv.v = this.manager.env.tokensToString ( kv.v );
                        }
+                       if ( kv.k === 'style' ) {
+                               kv.v = this.checkCss(kv.v);
+                       }
                }
        }
        // XXX: Validate attributes
        return { token: token };
 };
 
+Sanitizer.prototype.checkCss = function ( value ) {
+       if (/[\000-\010\016-\037\177]/.test(value)) {
+               return '/* invalid control char */';
+       }
+       if (/expression|filter\s*:|accelerator\s*:|url\s*\(/i.test(value)) {
+               return '/* insecure input */';
+       }
+       return value;
+};
+
 if (typeof module == "object") {
        module.exports.Sanitizer = Sanitizer;
 }


_______________________________________________
MediaWiki-CVS mailing list
[email protected]
https://lists.wikimedia.org/mailman/listinfo/mediawiki-cvs

Reply via email to