deliver-test-hacks.php
<?php
/**
* Custom request handling & routes for specific test purposes. This is not part of User Package setup. It's just for tests.
*/
$lib = $user_package->lib;
// so i can actually test user login & skirt ip throttling
if (isset($_POST['test_spoof_ip'])){
$_SERVER['REMOTE_ADDR'] = $_POST['test_spoof_ip'];
} else if (isset($_GET['test_spoof_ip'])){
$_SERVER['REMOTE_ADDR'] = $_GET['test_spoof_ip'];
}
if (isset($_GET['disable_pages'])){
$lib->disabled_pages = [
'login',
'register',
'reset-password',
'logout',
'terms',
];
}
$lia->addRoute('@GET.@POST./csrf-test/',
function ($route, $response) use ($lib){
$key = $lib->enable_csrf('csrf-test', 10, '/csrf-test-post/');
$data = $_SESSION[$key];
$data['key'] = $key;
$response->content = json_encode($data);
$response->useTheme = false;
}
);
$lia->addRoute('@POST./csrf-test-post/',
function ($route, $response) use ($lib){
$response->useTheme = false;
if ($lib->csrf_is_valid('csrf-test')){
$response->content = 'csrf post test success';
return;
}
$response->content = 'csrf post test not valid';
}
);
// force CSRF to pass
if (!isset($_SERVER['HTTP_USER_AGENT'])
&&!isset($_GET['enable_csrf'])
&&!isset($_POST['enable_csrf'])
&&!isset($_POST['agreed_to_terms'])
){
// print_r($_SERVER);
// exit;
// $_SERVER['HTTP_REFERER'] = 'http://localhost';
// foreach ($prefixes as $p){
// $post_key = $lib->get_csrf_post_key($p);
// if ($post_key != '')$lib->valid_sessions[$post_key] = true;
// }
foreach ($_POST as $k=>$v){
if (strpos($k,'-csrf-')!==false)$lib->valid_sessions[$k] = true;
}
$prefixes = ['csrf-test', 'request-password', 'complete-password', 'login', 'register'];
foreach ($prefixes as $p){
$_POST[$k=$p.'-csrf-force_pass'] = 'forced pass';
$lib->valid_sessions[$k] = true;
}
$_POST['logs_consent'] = 'on';
$_POST['agreed_to_terms'] = 'on';
}
if ( !isset($_SERVER['HTTP_USER_AGENT'])
&&!isset($_POST['honey']) ){
$_POST['honey'] = '1,2,3';
$_POST['honey_answer'] = password_hash('answer', PASSWORD_DEFAULT);
$_POST['1'] = '';
$_POST['2'] = '';
$_POST['3'] = 'answer';
}