<?php if (!defined('BASEPATH')) exit('No direct script access allowed');
/**
* MaxSite CMS
* (c) https://max-3000.com/
*/
global $MSO;
if (isset($MSO->data['uri_segment'][2])) {
if (!isset($_SERVER['HTTP_X_REQUESTED_WITH'])) {
@header('HTTP/1.0 404 Not Found');
die();
}
mso_checkreferer();
$fn = $MSO->config['base_dir'] . base64_decode($MSO->data['uri_segment'][2]);
// файл есть
if (file_exists($fn)) {
// подключаются только файлы вида имя-ajax.php
if (strpos($fn, '-ajax.php') !== false) // есть вхождение
{
$fn1 = preg_replace('!(.*)/(.*)-ajax.php(.*)!', "$1", $fn); // путь
$fn2 = preg_replace('!(.*)/(.*)-ajax.php(.*)!', "$2", $fn); // имя
$fn3 = preg_replace('!(.*)/(.*)-ajax.php(.*)!', "$3", $fn); // концовка
if (strpos($fn1, $MSO->config['base_dir']) === false) {
@header('HTTP/1.0 404 Not Found');
die(); // неверный путь
}
if (!$fn2) {
@header('HTTP/1.0 404 Not Found');
die(); // неверное имя
}
if ($fn3) {
@header('HTTP/1.0 404 Not Found');
die(); // в конце какой-то мусор
}
require($fn);
} else {
@header('HTTP/1.0 404 Not Found');
die();
}
}
} else {
@header('HTTP/1.0 404 Not Found');
die();
}
# end of file