|
@@ -1,11 +1,13 @@
|
|
|
<?php
|
|
|
-define("CONF", parse_ini_file(__DIR__ . "/config.ini", true, INI_SCANNER_TYPED));
|
|
|
+define('CONF', parse_ini_file(__DIR__ . '/config.ini', true, INI_SCANNER_TYPED));
|
|
|
|
|
|
-foreach (array_diff(scandir(CONF['common']['root_path'] . "/fn"), array('..', '.')) as $file)
|
|
|
+foreach (array_diff(scandir(CONF['common']['root_path'] . '/fn'), array('..', '.')) as $file)
|
|
|
require CONF['common']['root_path'] . '/fn/' . $file;
|
|
|
-require "pages.php";
|
|
|
+require 'pages.php';
|
|
|
|
|
|
-define("DB_PATH", CONF['common']['root_path'] . "/db/niver.db");
|
|
|
+define('DB_PATH', CONF['common']['root_path'] . '/db/niver.db');
|
|
|
+
|
|
|
+const LF = "\n";
|
|
|
|
|
|
const PLACEHOLDER_DOMAIN = 'example'; // From RFC2606: Reserved Top Level DNS Names > 2. TLDs for Testing, & Documentation Examples
|
|
|
const PLACEHOLDER_IPV6 = '2001:db8::3'; // From RFC3849: IPv6 Address Prefix Reserved for Documentation
|
|
@@ -15,15 +17,15 @@ if ($_SERVER['REQUEST_URI'] === '/sftpgo-auth.php')
|
|
|
return;
|
|
|
|
|
|
$pageAddress = substr($_SERVER['REQUEST_URI'], strlen(CONF['common']['prefix']) + 1);
|
|
|
-if (strpos($pageAddress, "?") !== false) {
|
|
|
- parse_str(substr($pageAddress, strpos($pageAddress, "?") + 1), $_GET);
|
|
|
- $pageAddress = substr($pageAddress, 0, strpos($pageAddress, "?"));
|
|
|
+if (strpos($pageAddress, '?') !== false) {
|
|
|
+ parse_str(substr($pageAddress, strpos($pageAddress, '?') + 1), $_GET);
|
|
|
+ $pageAddress = substr($pageAddress, 0, strpos($pageAddress, '?'));
|
|
|
}
|
|
|
-define("PAGE_URL", $pageAddress);
|
|
|
-define("PAGE_ADDRESS", $pageAddress . ((substr($pageAddress, -1) === '/' OR $pageAddress === '') ? 'index' : ''));
|
|
|
-define("PAGE_LINEAGE", explode('/', PAGE_ADDRESS));
|
|
|
-define("SERVICE", dirname(PAGE_ADDRESS));
|
|
|
-define("PAGE", basename(PAGE_ADDRESS, '.php'));
|
|
|
+define('PAGE_URL', $pageAddress);
|
|
|
+define('PAGE_ADDRESS', $pageAddress . ((substr($pageAddress, -1) === '/' OR $pageAddress === '') ? 'index' : ''));
|
|
|
+define('PAGE_LINEAGE', explode('/', PAGE_ADDRESS));
|
|
|
+define('SERVICE', dirname(PAGE_ADDRESS));
|
|
|
+define('PAGE', basename(PAGE_ADDRESS, '.php'));
|
|
|
|
|
|
$pageMetadata = [];
|
|
|
function getPageInformations($pages, $pageElements) {
|
|
@@ -83,7 +85,7 @@ foreach(array_reverse(TITLES_LINEAGE) as $id => $title)
|
|
|
?></title>
|
|
|
<?php
|
|
|
foreach (glob('css/*.css') as $cssPath)
|
|
|
- echo ' <link type="text/css" rel="stylesheet" media="screen" href="' . CONF['common']['prefix'] . '/' . $cssPath . '">' . "\n";
|
|
|
+ echo ' <link type="text/css" rel="stylesheet" media="screen" href="' . CONF['common']['prefix'] . '/' . $cssPath . '">' . LF;
|
|
|
?>
|
|
|
<meta name="viewport" content="width=device-width, initial-scale=1">
|
|
|
</head>
|
|
@@ -100,7 +102,7 @@ foreach (glob('css/*.css') as $cssPath)
|
|
|
<?php
|
|
|
foreach (TITLES_LINEAGE as $id => $title) {
|
|
|
$lastTitle = (TITLES_LINEAGE[array_key_last(TITLES_LINEAGE)] === $title);
|
|
|
- echo '<ul><li>' . ($lastTitle ? '<h1>' : '') . '<a' . (($id === 0) ? ' class="niver"' : '') . ' href="' . CONF['common']['prefix'] . ($lastTitle ? '/' . PAGE_URL : '/' . implode('/', array_slice(PAGE_LINEAGE, 0, $id)) . (($lastTitle OR $id === 0) ? '' : '/')) . '">' . $title . '</a>' . ($lastTitle ? '</h1>' : '') . "\n";
|
|
|
+ echo '<ul><li>' . ($lastTitle ? '<h1>' : '') . '<a' . (($id === 0) ? ' class="niver"' : '') . ' href="' . CONF['common']['prefix'] . ($lastTitle ? '/' . PAGE_URL : '/' . implode('/', array_slice(PAGE_LINEAGE, 0, $id)) . (($lastTitle OR $id === 0) ? '' : '/')) . '">' . $title . '</a>' . ($lastTitle ? '</h1>' : '') . LF;
|
|
|
}
|
|
|
echo str_repeat('</li></ul>', count(TITLES_LINEAGE));
|
|
|
?>
|
|
@@ -114,7 +116,7 @@ if (in_array(SERVICE, ['reg', 'ns', 'ht']) AND CONF[SERVICE]['enabled'] !== true
|
|
|
output(403, 'Ce service est désactivé.');
|
|
|
|
|
|
// Protect against cross-site request forgery if a POST request is received
|
|
|
-if (empty($_POST) === false AND (isset($_SERVER['HTTP_SEC_FETCH_SITE']) !== true OR $_SERVER['HTTP_SEC_FETCH_SITE'] !== "same-origin"))
|
|
|
+if (empty($_POST) === false AND (isset($_SERVER['HTTP_SEC_FETCH_SITE']) !== true OR $_SERVER['HTTP_SEC_FETCH_SITE'] !== 'same-origin'))
|
|
|
output(403, 'Anti-<abbr title="Cross-Site Request Forgery">CSRF</abbr> verification failed ! (Wrong or unset <code>Sec-Fetch-Site</code> HTTP header)');
|
|
|
|
|
|
function displayFinalMessage() {
|
|
@@ -124,7 +126,7 @@ function displayFinalMessage() {
|
|
|
}
|
|
|
|
|
|
function executePage() {
|
|
|
- require "pages/" . PAGE_ADDRESS . ".php";
|
|
|
+ require 'pages/' . PAGE_ADDRESS . '.php';
|
|
|
|
|
|
displayFinalMessage();
|
|
|
?>
|