Skip to content

Commit bb11acc

Browse files
committed
HTTPS by default on AppEngine
1 parent 603f722 commit bb11acc

7 files changed

+49
-4
lines changed

examples/appengine-https.php

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,33 @@
1+
<?php
2+
/**
3+
* @copyright Copyright (c) 2015, Google Inc.
4+
* @link https://www.google.com/recaptcha
5+
*
6+
* Permission is hereby granted, free of charge, to any person obtaining a copy
7+
* of this software and associated documentation files (the "Software"), to deal
8+
* in the Software without restriction, including without limitation the rights
9+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
10+
* copies of the Software, and to permit persons to whom the Software is
11+
* furnished to do so, subject to the following conditions:
12+
*
13+
* The above copyright notice and this permission notice shall be included in
14+
* all copies or substantial portions of the Software.
15+
*
16+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
17+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
18+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
19+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
20+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
21+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
22+
* THE SOFTWARE.
23+
*/
24+
// Redirect to HTTPS by default (for AppEngine)
25+
if (isset($_SERVER['HTTP_X_FORWARDED_PROTO'])) {
26+
if ($_SERVER['HTTP_X_FORWARDED_PROTO'] === 'http') {
27+
header('HTTP/1.1 301 Moved Permanently');
28+
header('Location: https://'.$_SERVER['SERVER_NAME'].$_SERVER['REQUEST_URI']);
29+
exit(0);
30+
} else {
31+
header('Strict-Transport-Security: max-age=63072000; includeSubDomains; preload');
32+
}
33+
}

examples/index.php

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2222
* THE SOFTWARE.
2323
*/
24+
require __DIR__ . '/appengine-https.php';
2425
?>
2526
<!DOCTYPE html>
2627
<html lang="en">

examples/recaptcha-v2-checkbox-explicit.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2222
* THE SOFTWARE.
2323
*/
24+
require __DIR__ . '/appengine-https.php';
25+
2426
// Initiate the autoloader. The file should be generated by Composer.
2527
// You will provide your own autoloader or require the files directly if you did
2628
// not install via Composer.

examples/recaptcha-v2-checkbox.php

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2222
* THE SOFTWARE.
2323
*/
24-
// Initiate the autoloader. The file should be generated by Composer.
24+
require __DIR__ . '/appengine-https.php';
25+
26+
// Initiate the autoloader. The file should be generated by Composer.
2527
// You will provide your own autoloader or require the files directly if you did
2628
// not install via Composer.
2729
require_once __DIR__ . '/../vendor/autoload.php';

examples/recaptcha-v2-invisible.php

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -21,7 +21,9 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2222
* THE SOFTWARE.
2323
*/
24-
// Initiate the autoloader. The file should be generated by Composer.
24+
require __DIR__ . '/appengine-https.php';
25+
26+
// Initiate the autoloader. The file should be generated by Composer.
2527
// You will provide your own autoloader or require the files directly if you did
2628
// not install via Composer.
2729
require_once __DIR__ . '/../vendor/autoload.php';
@@ -111,7 +113,7 @@
111113
else:
112114
// Add the g-recaptcha tag to the form you want to include the reCAPTCHA element
113115
?>
114-
<p>Complete the reCAPTCHA then submit the form.</p>
116+
<p>Submit the form and reCAPTCHA will run automatically.</p>
115117
<form action="/recaptcha-v2-invisible.php" method="post" id="demo-form">
116118
<fieldset>
117119
<legend>An example form</legend>

examples/recaptcha-v3-request-scores.php

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2222
* THE SOFTWARE.
2323
*/
24+
require __DIR__ . '/appengine-https.php';
25+
2426
// Initiate the autoloader. The file should be generated by Composer.
2527
// You will provide your own autoloader or require the files directly if you did
2628
// not install via Composer.

examples/recaptcha-v3-verify.php

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,8 @@
2121
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
2222
* THE SOFTWARE.
2323
*/
24+
require __DIR__ . '/appengine-https.php';
25+
2426
// Initiate the autoloader. The file should be generated by Composer.
2527
// You will provide your own autoloader or require the files directly if you did
2628
// not install via Composer.
@@ -42,5 +44,6 @@
4244
$resp = $recaptcha->setExpectedHostname($_SERVER['SERVER_NAME'])
4345
->setExpectedAction('homepage')
4446
->setScoreThreshold(0.5)
45-
->verify($_GET['token'], $_SERVER['REMOTE_ADDR']);header('Content-type:application/json');
47+
->verify($_GET['token'], $_SERVER['REMOTE_ADDR']);
48+
header('Content-type:application/json');
4649
echo json_encode($resp->toArray());

0 commit comments

Comments
 (0)