NovinkaZverejnili sme 50+ Laravel balíkov ako open source
Custom AI apps, agents and automation — Roundly ConsultingRoundly
Všetky balíky

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-laravel

Predvolené 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-fetch

Loká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:check

Vypíš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 kryptomien

Odoslaní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.