require_once 'boot.php';
require_once 'object/BaseObject.php';
-$a = new App(__DIR__);
+if (empty($a)) {
+ $a = new App(__DIR__);
+}
BaseObject::set_app($a);
// We assume that the index.php is called by a frontend process
require_once "include/dba.php";
if (!$install) {
- $db = new dba($db_host, $db_user, $db_pass, $db_data, $install);
+ dba::connect($db_host, $db_user, $db_pass, $db_data, $install);
unset($db_host, $db_user, $db_pass, $db_data);
/**
$a->module = 'maintenance';
} else {
check_url($a);
- check_db();
+ check_db(false);
check_plugins($a);
}
header("X-Friendica-Version: " . FRIENDICA_VERSION);
header("Content-type: text/html; charset=utf-8");
+if (Config::get('system', 'hsts') && (Config::get('system', 'ssl_policy') == SSL_POLICY_FULL)) {
+ header("Strict-Transport-Security: max-age=31536000");
+}
+
+// Some security stuff
+header('X-Content-Type-Options: nosniff');
+header('X-XSS-Protection: 1; mode=block');
+header('X-Permitted-Cross-Domain-Policies: none');
+header('X-Frame-Options: sameorigin');
+
+// Things like embedded OSM maps don't work, when this is enabled
+// header("Content-Security-Policy: default-src 'self'; script-src 'self' 'unsafe-inline' 'unsafe-eval'; connect-src 'self'; style-src 'self' 'unsafe-inline'; font-src 'self'; img-src 'self' https: data:; media-src 'self' https:; child-src 'self' https:; object-src 'none'");
+
/*
* We use $_GET["mode"] for special page templates. So we will check if we have
* to load another page template than the default one.