Fix http/s protocol headers

Improve request ids
This commit is contained in:
René Preuß
2021-01-01 16:06:59 +01:00
parent f6d04777e1
commit 6f72d719bf
5 changed files with 35 additions and 26 deletions

View File

@@ -45,15 +45,13 @@ class ConnectionManager implements ConnectionManagerContract
public function storeConnection(string $host, ?string $subdomain, ConnectionInterface $connection): ControlConnection
{
$clientId = (string) uniqid();
$connection->client_id = $clientId;
$connection->client_id = sha1(uniqid('', true));
$storedConnection = new ControlConnection(
$connection,
$host,
$subdomain ?? $this->subdomainGenerator->generateSubdomain(),
$clientId,
$connection->client_id,
$this->getAuthTokenFromConnection($connection)
);

View File

@@ -3,6 +3,7 @@
namespace App\Server\Connections;
use Evenement\EventEmitterTrait;
use Illuminate\Support\Str;
use Ratchet\ConnectionInterface;
class ControlConnection

View File

@@ -113,9 +113,13 @@ class TunnelMessageController extends Controller
$host .= ":{$this->configuration->port()}";
}
$request->headers->set('Host', $controlConnection->host);
$exposeUrl = parse_url($controlConnection->host);
$request->headers->set('Host', "{$controlConnection->subdomain}.{$host}");
$request->headers->set('X-Forwarded-Proto', $request->isSecure() ? 'https' : 'http');
$request->headers->set('X-Expose-Request-ID', uniqid());
$request->headers->set('X-Expose-Request-ID', sha1(uniqid('', true)));
$request->headers->set('X-Expose-Host', sprintf('%s:%s', $exposeUrl['host'], $exposeUrl['port']));
$request->headers->set('X-Expose-Proto', $exposeUrl['scheme']);
$request->headers->set('Upgrade-Insecure-Requests', 1);
$request->headers->set('X-Exposed-By', config('app.name').' '.config('app.version'));
$request->headers->set('X-Original-Host', "{$controlConnection->subdomain}.{$host}");