a-blog cms PHP API Reference

HttpClientFactory
in package

FinalYes

埋め込み取得で使う HTTP クライアントを組み立てる。

埋め込みは「編集者が入力した任意の URL」を取りに行くため、内部ネットワークを覗かれない よう SSRF ガードを必ず通す。プロバイダーごとにクライアントを組み立てると、そのうち ガードを外した実装が混ざるので、生成をここ 1 箇所に集約する。

Table of Contents

Constants

CONNECT_TIMEOUT  = 5
接続の待ち時間(秒)
TIMEOUT  = 10
取得全体の待ち時間(秒)

Methods

create()  : ClientInterface
SSRF ガードを挟んだ PSR-18 クライアントを生成する

Constants

CONNECT_TIMEOUT

接続の待ち時間(秒)

public mixed CONNECT_TIMEOUT = 5

Methods

create()

SSRF ガードを挟んだ PSR-18 クライアントを生成する

public static create() : ClientInterface

Why not: embed/embed 同梱の CurlClient を使わないのは、CURLOPT_RESOLVE を渡す口が無く、 SsrfGuardedClient が検証した IP と実接続の IP を一致させられない(DNS リバインディングに よる TOCTOU が残る)ため。自動追従はホップ毎に検証する SsrfGuardedClient が担うので、 CurlHttpClient 側は常に追従しない。

Return values
ClientInterface

        
On this page

Search results