CloudCastle Curl

SsrfGuard
in package

FinalYes

Защита от подделки запросов на стороне сервера (SSRF).

Проверяет схему URI по списку разрешённых и — если обращения во внутреннюю сеть не разрешены — блокирует хосты, разрешающиеся в приватные или зарезервированные адреса (localhost, 10/8, 192.168/16, link-local и т. п.). Проверка выполняется отдельно на каждом хопе перенаправления.

Функция gethostbynamel вызывается без указания пространства имён, что позволяет подменять разрешение имён в тестах.

Table of Contents

Methods

__construct()  : mixed
allowedSchemes()  : array<int, string>
Список разрешённых схем.
assertAllowed()  : void
Проверить, допустим ли URI.

Methods

__construct()

public __construct([array<int, string> $allowedSchemes = ['http', 'https'] ]) : mixed
Parameters
$allowedSchemes : array<int, string> = ['http', 'https']

разрешённые схемы (по умолчанию http, https)

allowedSchemes()

Список разрешённых схем.

public allowedSchemes() : array<int, string>
Return values
array<int, string>

схемы в нижнем регистре

assertAllowed()

Проверить, допустим ли URI.

public assertAllowed(Uri $uri, bool $allowPrivateNetwork) : void
Parameters
$uri : Uri

проверяемый адрес

$allowPrivateNetwork : bool

разрешены ли приватные адреса

Tags
throws
RequestException

если хост отсутствует или схема запрещена

SsrfException

если хост ведёт во внутреннюю сеть

On this page

Search results