Inštalácia
Pridajte balík. Service provider aj alias fasády SafeFetch sa načítajú automaticky a nič ďalšie netreba — žiadnu databázu, žiadne migrácie:
composer require roundly-consulting/safe-fetch-for-laravelPredvolené hodnoty sú prísne: len https, ľubovoľný port, tabuľka blokovaných sietí, odmietnuté vlastné mená hostiteľov aplikácie a vypnuté presmerovania. Požiadavky posielajte s nainštalovaným rozšírením curl — pripnutie DNS od neho závisí (pozrite Požiadavky).
Overte URL adresu a potom ju načítajte
Overte URL adresu, ktorú zadal používateľ, a potom ju načítajte — s limitom a s chybami, ktoré povedia, či pomôže opakovanie:
use Illuminate\Support\Facades\Http;
use RoundlyConsulting\SafeFetch\Exceptions\SafeFetchException;
use RoundlyConsulting\SafeFetch\Facades\SafeFetch;
use RoundlyConsulting\SafeFetch\Rules\SafeUrl;
$request->validate(['feed' => ['required', 'string', 'max:2048', new SafeUrl]]);
try {
$feed = SafeFetch::fetch($request->input('feed'), maxBytes: 2_000_000);
// $feed->body, $feed->contentType, $feed->url
} catch (SafeFetchException $e) {
$e->retryable(); // a 5xx or a timeout can heal; a blocked address never does
}Alebo ochráňte akékoľvek HTTP volanie Laravelu:
Http::safe()->withToken($token)->post($hookUrl, $payload);Publikovanie konfigurácie a prekladov (voliteľné)
php artisan vendor:publish --tag=safe-fetch-config # config/safe-fetch.php
php artisan vendor:publish --tag=safe-fetch-translations # lang/vendor/safe-fetchLokálny vývoj
Ak počas vývoja potrebujete pristupovať k službám na vlastnom počítači, povoľte http a potrebnú loopback adresu — nikdy nie v produkcii:
// config/safe-fetch.php
'allow_http' => env('SAFE_FETCH_ALLOW_HTTP', false), // SAFE_FETCH_ALLOW_HTTP=on in .env
'ranges' => ['allowed' => ['127.0.0.1/32'], 'blocked' => []],Kontrola prostredia
php artisan safe-fetch:checkVypíše, či je k dispozícii pripnutie DNS (a verziu libcurl), či je zapnutá kontrola adresy pred odoslaním, či fungujú medzinárodné mená hostiteľov, verziu Guzzle a či je konfigurácia platná, a upozorní na nastavenia, ktoré ochranu oslabujú. Pri chybe (chýba curl, neplatná konfigurácia) skončí s kódom 1. Pozrite Príkazy Artisan.
Prejavte lásku k open source
Tento balík je zadarmo pod licenciou MIT. Ak vám šetrí čas, jednorazový príspevok alebo členstvo na Patreone nám pomôže ho ďalej udržiavať, testovať a dokumentovať.
Ďalšie spôsoby podpory vrátane kryptomienOdoslaním daru súhlasíte s našimi podmienkami prijímania darov.
Chcete to zabudovať do svojho produktu?
Naše balíky integrujeme do zákazkových Laravel a AI riešení. Napíšte nám, na čom pracujete, a ozveme sa do 48 hodín.