diff --git a/pywb/rewrite/regex_rewriters.py b/pywb/rewrite/regex_rewriters.py index 29bb7d9c..2bcf42d9 100644 --- a/pywb/rewrite/regex_rewriters.py +++ b/pywb/rewrite/regex_rewriters.py @@ -103,9 +103,9 @@ if (thisObj && thisObj._WB_wombat_obj_proxy) return thisObj._WB_wombat_obj_proxy rules = [ # rewriting 'eval(....)' - invocation - (r'\beval\s*\(', self.add_prefix('WB_wombat_runEval(function _____evalIsEvil(_______eval_arg$$) { return eval(_______eval_arg$$); }.bind(this)).'), 0), + (r'(?>> _test_js_obj_proxy(r'this. location = http://example.com/') 'this. location = ((self.__WB_check_loc && self.__WB_check_loc(location)) || {}).href = http://example.com/' +>>> _test_js_obj_proxy('eval(a)') +'WB_wombat_runEval(function _____evalIsEvil(_______eval_arg$$) { return eval(_______eval_arg$$); }.bind(this)).eval(a)' +>>> _test_js_obj_proxy('this.$eval(a)') +'this.$eval(a)' + +>>> _test_js_obj_proxy('x = this.$eval; x(a);') +'x = this.$eval; x(a);' + +>>> _test_js_obj_proxy('x = eval; x(a);') +'x = WB_wombat_eval; x(a);' + +>>> _test_js_obj_proxy('$eval = eval; $eval(a);') +'$eval = WB_wombat_eval; $eval(a);' + +>>> _test_js_obj_proxy('window.eval(a);') +'window.WB_wombat_runEval(function _____evalIsEvil(_______eval_arg$$) { return eval(_______eval_arg$$); }.bind(this)).eval(a);' #================================================================= # XML Rewriting