- панель работает на PHP 8.4 (оригинал под PHP 7.0): elFinder utf8_encode, apache_get_modules, warnings - капча выключена и управляется из админки (флаг captcha_enable + блок настроек) - закрыты две SQL-инъекции без авторизации (createAuthLog: пароль из POST и CF-Connecting-IP) - убрано хранение паролей в открытом виде в authlog, XSS в поле ref - установщики install-panel.sh и install-node.sh (оригинальный затирал sources.list репозиториями Debian 9) - современный Dockerfile (оригинальный на debian:stretch больше не собирается) - планировщик и автозапуск работают без systemd - брендинг REDL.IO, год 2026, ссылки на redl.io - документация на русском: ИЗМЕНЕНИЯ, БЕЗОПАСНОСТЬ, ИНСТРУКЦИЯ
80 lines
1.4 KiB
PHP
80 lines
1.4 KiB
PHP
<?php
|
|
|
|
/**
|
|
* Abstract class of editor plugins.
|
|
*
|
|
* @author Naoki Sawada
|
|
*/
|
|
class elFinderEditor
|
|
{
|
|
/**
|
|
* Array of allowed method by request from client side.
|
|
*
|
|
* @var array
|
|
*/
|
|
protected $allowed = array();
|
|
|
|
/**
|
|
* elFinder instance
|
|
*
|
|
* @var object elFinder instance
|
|
*/
|
|
protected $elfinder;
|
|
|
|
/**
|
|
* Arguments
|
|
*
|
|
* @var array argValues
|
|
*/
|
|
protected $args;
|
|
|
|
/**
|
|
* Constructor.
|
|
*
|
|
* @param object $elfinder
|
|
* @param array $args
|
|
*/
|
|
public function __construct($elfinder, $args)
|
|
{
|
|
$this->elfinder = $elfinder;
|
|
$this->args = $args;
|
|
}
|
|
|
|
/**
|
|
* Return boolean that this plugin is enabled.
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function enabled()
|
|
{
|
|
return true;
|
|
}
|
|
|
|
/**
|
|
* Return boolean that $name method is allowed.
|
|
*
|
|
* @param string $name
|
|
*
|
|
* @return bool
|
|
*/
|
|
public function isAllowedMethod($name)
|
|
{
|
|
$checker = array_flip($this->allowed);
|
|
|
|
return isset($checker[$name]);
|
|
}
|
|
|
|
/**
|
|
* Return $this->args value of the key
|
|
*
|
|
* @param string $key target key
|
|
* @param string $empty empty value
|
|
*
|
|
* @return mixed
|
|
*/
|
|
public function argValue($key, $empty = '')
|
|
{
|
|
return isset($this->args[$key]) ? $this->args[$key] : $empty;
|
|
}
|
|
}
|