Yeah, I'm somewhat of an idiot myself.
This commit is contained in:
parent
e5dcd654d3
commit
a86500ad7a
1 changed files with 11 additions and 7 deletions
|
@ -396,18 +396,22 @@ final class SockChatHandler extends Handler {
|
|||
|
||||
public function token(HttpResponse $response, HttpRequest $request) {
|
||||
$host = $request->getHeaderLine('Host');
|
||||
$origin = strtolower(parse_url($request->getHeaderLine('Origin'), PHP_URL_HOST));
|
||||
$origin = $request->getHeaderLine('Origin');
|
||||
$originHost = strtolower(parse_url($origin, PHP_URL_HOST));
|
||||
|
||||
if(!empty($origin) && $origin !== $host) {
|
||||
if(!empty($originHost) && $originHost !== $host) {
|
||||
$whitelist = Config::get('sockChat.origins', Config::TYPE_ARR, []);
|
||||
|
||||
if(!in_array($origin, $whitelist))
|
||||
if(!in_array($originHost, $whitelist))
|
||||
return 403;
|
||||
|
||||
$request->setHeader('Access-Control-Allow-Origin', $origin);
|
||||
$request->setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');
|
||||
$request->setHeader('Access-Control-Allow-Credentials', 'true');
|
||||
$request->setHeader('Vary', 'Origin');
|
||||
$originProto = strtolower(parse_url($origin, PHP_URL_SCHEME));
|
||||
$origin = $originProto . '://' . $originHost;
|
||||
|
||||
$response->setHeader('Access-Control-Allow-Origin', $origin);
|
||||
$response->setHeader('Access-Control-Allow-Methods', 'OPTIONS, GET');
|
||||
$response->setHeader('Access-Control-Allow-Credentials', 'true');
|
||||
$response->setHeader('Vary', 'Origin');
|
||||
}
|
||||
|
||||
if($request->getMethod() === 'OPTIONS')
|
||||
|
|
Loading…
Reference in a new issue