2 require_once '../../resources/portabilityLayer.php';
4 $tmpFile = sys_get_temp_dir() . "/xsrf.txt";
8 header("Access-Control-Allow-Origin: http://127.0.0.1:8000");
9 header("Access-Control-Allow-Credentials: true");
10 header("Access-Control-Allow-Methods: GET");
11 header("Access-Control-Max-Age: 1");
12 echo "FAILED: Issued a " . $_SERVER['REQUEST_METHOD'] . " request during state '" . $state . "'\n";
16 function setState($newState, $file)
18 file_put_contents($file, $newState);
21 function getState($file)
24 if (file_exists($file))
25 $state = file_get_contents($file);
26 return $state ?
$state : "Uninitialized";
29 $state = getState($tmpFile);
31 if ($_SERVER['REQUEST_METHOD'] == "GET"
32 && $_GET['state'] == "reset") {
33 if (file_exists($tmpFile)) unlink($tmpFile);
34 header("Access-Control-Allow-Origin: http://127.0.0.1:8000");
35 header("Access-Control-Max-Age: 1");
36 echo "Server state reset.\n";
37 } else if ($state == "Uninitialized") {
38 if ($_SERVER['REQUEST_METHOD'] == "OPTIONS") {
39 if ($_GET['state'] == "method" ||
$_GET['state'] == "header") {
40 header("Access-Control-Allow-Methods: GET");
41 header("Access-Control-Allow-Origin: http://127.0.0.1:8000");
42 header("Access-Control-Max-Age: 1");
44 echo("FAIL: This request should not be displayed.\n");
45 setState("Denied", $tmpFile);
49 } else if ($state == "Denied") {
50 if ($_SERVER['REQUEST_METHOD'] == "GET"
51 && $_GET['state'] == "complete") {
53 header("Access-Control-Allow-Origin: http://127.0.0.1:8000");
54 header("Access-Control-Max-Age: 1");
55 echo "PASS: Request successfully blocked.\n";
57 setState("Deny Ignored", $tmpFile);
60 } else if ($state == "Deny Ignored") {
64 if (file_exists($tmpFile)) unlink($tmpFile);