Сборка REDL: панель на PHP 8, капча-тумблер, закрытые уязвимости, установщики в один клик
- панель работает на 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 - документация на русском: ИЗМЕНЕНИЯ, БЕЗОПАСНОСТЬ, ИНСТРУКЦИЯ
This commit is contained in:
@@ -0,0 +1,79 @@
|
||||
<?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;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user