diff --git a/setup.php b/setup.php index 6bf79567..0d5a7476 100644 --- a/setup.php +++ b/setup.php @@ -33,15 +33,20 @@ if (isset($_POST['add_database'])) { exit; } - $host = trim($_POST['host']); - $database = trim($_POST['database']); - $username = trim($_POST['username']); - $password = trim($_POST['password']); + $host = filter_var(trim($_POST['host']), FILTER_SANITIZE_STRING); + $database = filter_var(trim($_POST['database']), FILTER_SANITIZE_STRING); + $username = filter_var(trim($_POST['username']), FILTER_SANITIZE_STRING); + $password = filter_var(trim($_POST['password']), FILTER_SANITIZE_STRING); $config_base_url = $_SERVER['HTTP_HOST'] . dirname($_SERVER['REQUEST_URI']); $config_base_url = rtrim($config_base_url, '/'); $installation_id = randomString(32); + // Ensure variables meet specific criteria (very basic examples) + if (!preg_match('/^[a-zA-Z0-9.-]+$/', $host)) { + die('Invalid host format.'); + } + // Test database connection before writing it to config.php $conn = mysqli_connect($host, $username, $password, $database); @@ -50,10 +55,10 @@ if (isset($_POST['add_database'])) { } $new_config = "