diff options
author | Oleg Gaidarenko <markelog@gmail.com> | 2015-09-10 13:40:00 +0300 |
---|---|---|
committer | Oleg Gaidarenko <markelog@gmail.com> | 2015-10-12 17:05:18 +0300 |
commit | b078a62013782c7424a4a61a240c23c4c0b42614 (patch) | |
tree | 09ac4a92a491478e487f8b9d05d363bc37d2d5ff /test/unit/ajax.js | |
parent | 735dea34fb0ae625542d51eae3f4e7316e403eaa (diff) | |
download | jquery-b078a62013782c7424a4a61a240c23c4c0b42614.tar.gz jquery-b078a62013782c7424a4a61a240c23c4c0b42614.zip |
Ajax: Mitigate possible XSS vulnerability
Proposed by @jaubourg
Fixes gh-2432
Closes gh-2588
Diffstat (limited to 'test/unit/ajax.js')
-rw-r--r-- | test/unit/ajax.js | 48 |
1 files changed, 48 insertions, 0 deletions
diff --git a/test/unit/ajax.js b/test/unit/ajax.js index 14fe0bed6..647958773 100644 --- a/test/unit/ajax.js +++ b/test/unit/ajax.js @@ -71,6 +71,54 @@ QUnit.module( "ajax", { }; } ); + ajaxTest( "jQuery.ajax() - do not execute js (crossOrigin)", 2, function( assert ) { + return { + create: function( options ) { + options.crossDomain = true; + return jQuery.ajax( url( "data/script.php?header=ecma" ), options ); + }, + success: function() { + assert.ok( true, "success" ); + }, + complete: function() { + assert.ok( true, "complete" ); + } + }; + } ); + + ajaxTest( "jQuery.ajax() - execute js for crossOrigin when dataType option is provided", 3, + function( assert ) { + return { + create: function( options ) { + options.crossDomain = true; + options.dataType = "script"; + return jQuery.ajax( url( "data/script.php?header=ecma" ), options ); + }, + success: function() { + assert.ok( true, "success" ); + }, + complete: function() { + assert.ok( true, "complete" ); + } + }; + } + ); + + ajaxTest( "jQuery.ajax() - do not execute js (crossOrigin)", 2, function( assert ) { + return { + create: function( options ) { + options.crossDomain = true; + return jQuery.ajax( url( "data/script.php" ), options ); + }, + success: function() { + assert.ok( true, "success" ); + }, + complete: function() { + assert.ok( true, "complete" ); + } + }; + } ); + ajaxTest( "jQuery.ajax() - success callbacks (late binding)", 8, function( assert ) { return { setup: addGlobalEvents( "ajaxStart ajaxStop ajaxSend ajaxComplete ajaxSuccess", assert ), |