From af992bd86a0b9c0d4e7a8960c2d0f809532eefdb Mon Sep 17 00:00:00 2001 From: "Cathy J. Fitzpatrick" Date: Wed, 1 May 2013 05:50:46 -0700 Subject: [PATCH] Add SSL support (not yet usable) --- .htaccess | 4 ++++ crossdomain.php | 1 + customcss.php | 3 ++- js/battledata.js | 3 ++- js/sim.js | 8 ++++++-- 5 files changed, 15 insertions(+), 4 deletions(-) diff --git a/.htaccess b/.htaccess index f7751ca4b..aefc3b46c 100644 --- a/.htaccess +++ b/.htaccess @@ -23,6 +23,10 @@ RewriteEngine on RewriteCond %{HTTP_HOST} ^www\.play\.pokemonshowdown\.com$ [NC] RewriteRule ^(.*) http://play.pokemonshowdown.com/$1 [R=301,L] +#RewriteCond %{HTTP:X-Forwarded-Proto} ^http$ +#RewriteCond %{REMOTE_ADDR} !^69\.85\.87\.173$ +#RewriteRule ^(.*) https://play.pokemonshowdown.com/$1 [R=301,L] + RewriteRule ^style/font/.*?\.(eot|svg|ttf|woff)$ - [E=SAFE_RESOURCE] Header set Access-Control-Allow-Origin * env=SAFE_RESOURCE diff --git a/crossdomain.php b/crossdomain.php index ac36ed142..e6d61a982 100644 --- a/crossdomain.php +++ b/crossdomain.php @@ -9,6 +9,7 @@ if (preg_match('/^([a-z0-9-_\.]*?)\.dev\.psim\.us$/', $host, $m)) { } else if (preg_match('/^([a-z0-9-_\.]*?)\.psim\.us$/', $host, $m)) { $config['host'] = $m[1]; if ($config['host'] === 'logs') die; // not authorised + if ($config['host'] === 'sim') die; // not authorised } else if ($host === 'dev.pokemonshowdown.com') { $config['host'] = 'dev'; } else { diff --git a/customcss.php b/customcss.php index cccaa36bb..ab29dead0 100644 --- a/customcss.php +++ b/customcss.php @@ -13,7 +13,8 @@ header('Content-Type: text/css'); // the CSS file should specify a charset $serverdata =& $PokemonServers[$server]; $customcssuri = @$serverdata['customcss']; if (empty($customcssuri)) { - $customcssuri = 'http://'.$serverdata['server'].':'.$serverdata['port'].'/custom.css'; + $protocol = ($serverdata['port'] === 443) ? 'https' : 'http'; + $customcssuri = $protocol . '://'.$serverdata['server'].':'.$serverdata['port'].'/custom.css'; } // No need to sanitise $server because it should be safe already. diff --git a/js/battledata.js b/js/battledata.js index dfd82b38f..817c2b0cd 100644 --- a/js/battledata.js +++ b/js/battledata.js @@ -344,7 +344,8 @@ var Tools = { } if (window.Config && Config.server && Config.server.registered) { // custom avatar served by the server - return 'http://' + Config.server.host + ':' + Config.server.port + + var protocol = (Config.server.port === 443) ? 'https' : 'http'; + return protocol + '://' + Config.server.host + ':' + Config.server.port + '/avatars/' + encodeURIComponent(avatar); } // just pick a random avatar diff --git a/js/sim.js b/js/sim.js index 579b7441b..3cc95cb55 100644 --- a/js/sim.js +++ b/js/sim.js @@ -1,7 +1,7 @@ // some setting-like stuff Config.defaultserver = { id: 'showdown', - host: 'sim.smogon.com', + host: 'sim.psim.us', port: 8000, altport: 80, registered: true @@ -3572,7 +3572,8 @@ teams = (function() { } var constructSocket = function() { - return new SockJS('http://' + Config.server.host + ':' + + var protocol = (Config.server.port === 443) ? 'https' : 'http'; + return new SockJS(protocol + '://' + Config.server.host + ':' + Config.server.port + Config.sockjsprefix); }; @@ -3769,6 +3770,9 @@ teams = (function() { }; var origindomain = 'play.pokemonshowdown.com'; if ((document.location.hostname === origindomain) || Config.testclient) { + if ((document.location.protocol === 'https:') && !Tools.prefs('portedstorage')) { + return document.location.replace('http://' + document.location.hostname + document.location.pathname); + } if (!Config.testclient) { Config.server = Config.defaultserver; }