remcodex/server

远程代码执行服务器。

dev-master 2021-02-15 02:28 UTC

This package is auto-updated.

Last update: 2024-09-18 07:20:01 UTC


README

远程代码执行服务器 - 此库使用 Guzwrap 来解构发送的请求,执行它,然后将请求响应发送回 RCE 客户端
此库像奴隶一样,除了目前只支持 Guzwrap 请求对象。

注意 🔊

该项目目前正在接受大量更新,可能包括代码重构、命名空间更改以及可能导致代码损坏或无法完全工作的许多其他内容。
该项目尚未准备就绪!!!

安装

composer require remcodex/server

用法

use Remcodex\Server\Command;
use Remcodex\Server\ErrorHandler;
use Remcodex\Server\Prebuilt\RequestListener;
use Remcodex\Server\Prebuilt\ResponseListener;
use Remcodex\Server\Router;
use Remcodex\Server\Server;

require 'vendor/autoload.php';

//Load http routes
$collector = Router::load(__DIR__ . '/routes.php');

//Load request commands
$commands = Command::load(__DIR__ . '/commands.php');

//Create and start server
Server::create()
    ->setEnvironment(Server::ENV_DEVELOPMENT)
    ->setErrorHandler(new ErrorHandler())
    ->setRouteCollector($collector)
    ->setCommands($commands)
    ->onRequest(new RequestListener())
    ->onResponse(new ResponseListener())
    ->run();

事件

  • 应用事件
use Remcodex\Server\Events\AppEvent;


AppEvent::onError(function (Throwable $exception){
    echo "Error: {$exception->getMessage()} \n";
});
  • HTTP 事件
use Psr\Http\Message\ServerRequestInterface;
use QuickRoute\Route\DispatchResult;
use Remcodex\Server\Events\HttpEvent;
use Remcodex\Server\Response\ResponseInterface;

HttpEvent::onRequest(function (ServerRequestInterface $request){
    echo "Request received: [{$request->getMethod()}] {$request->getUri()} \n";
});

HttpEvent::onDispatch(function (DispatchResult $dispatchResult){
    echo "Route dispatched: {$dispatchResult->getRoute()->getPrefix()} \n";
});

HttpEvent::onResponse(function (ResponseInterface $response){
    echo "Response about to be sent: {$response->getStatusCode()} \n";
});