summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRobert Newson <rnewson@apache.org>2012-12-18 15:11:41 +0000
committerRobert Newson <rnewson@apache.org>2012-12-19 01:46:42 +0000
commitc98a4108826d613658f2e396e6315770d026d1d2 (patch)
treee001b4125e18fd49001910e59eee94d5926f1229
parenta5cabbd4e99a9ea8f5c7cca0db7b0ae0424c89dd (diff)
downloadcouchdb-c98a4108826d613658f2e396e6315770d026d1d2.tar.gz
Improve script url validation
-rw-r--r--share/www/script/couch_test_runner.js9
1 files changed, 3 insertions, 6 deletions
diff --git a/share/www/script/couch_test_runner.js b/share/www/script/couch_test_runner.js
index b09aeab62..c04e6b1da 100644
--- a/share/www/script/couch_test_runner.js
+++ b/share/www/script/couch_test_runner.js
@@ -15,12 +15,9 @@
function loadScript(url) {
// disallow loading remote URLs
- if((url.substr(0, 7) == "http://")
- || (url.substr(0, 8) == "https://")
- || (url.substr(0, 2) == "//")
- || (url.substr(0, 5) == "data:")
- || (url.substr(0, 11) == "javascript:")) {
- throw "Not loading remote test scripts";
+ var re = /^[a-z0-9_]+(\/[a-z0-9_]+)*\.js#?$/;
+ if (!re.test(url)) {
+ throw "Not loading remote test scripts";
}
if (typeof document != "undefined") document.write('<script src="'+url+'"></script>');
};