---
title: "Validácia a predbežná kontrola — Safe Fetch for Laravel | Roundly"
description: "Pravidlo SafeUrl a textové pravidlo safe_url s jednou neutrálnou správou, SafeUrl::withoutLookup() a SafeFetch::precheck() pri ukladaní."
url: https://roundly-consulting.com/sk/open-source/navody/safe-fetch-for-laravel/validacia
language: sk
---

[Všetky balíky](https://roundly-consulting.com/sk/open-source.md)

[Safe Fetch for Laravel](https://roundly-consulting.com/sk/open-source/navody/safe-fetch-for-laravel.md)

# Validácia a predbežná kontrola

Nebezpečné URL adresy odmietnite už pri odoslaní formulára. Pravidlo prejde, keď ochrana URL adresu pustí (SafeFetch::allows()), a zlyhá pre všetko, čo nie je reťazec:

```php
use RoundlyConsulting\SafeFetch\Rules\SafeUrl;

$request->validate(['feed' => ['required', 'string', 'max:2048', new SafeUrl]]);
$request->validate(['feed' => ['required', 'string', 'max:2048', 'safe_url']]);
$request->validate(['hook' => ['required', new SafeUrl(SafeFetch::policy()->allowHosts(['*.partner.example']))]]);
$request->validate(['hook' => ['required', SafeUrl::withoutLookup()]]);             // no DNS lookup
$request->validate(['dev_hook' => ['required', 'safe_url:http']]);                   // http as well
```

- Jedna správa bez ohľadu na dôvod — safe-fetch::validation.safe\_url, „Pole :attribute musí byť URL adresa, ktorú táto aplikácia smie načítať.“ (aj v angličtine) — takže formulár používateľovi nikdy neprezradí, aké interné mená existujú. Správa, ktorú pravidlu zadáte sami, má prednosť.
- Textové pravidlo prijíma jediný parameter, http (safe\_url:http → policy()->allowHttp()). Akýkoľvek iný parameter vyhodí InvalidArgumentException, namiesto toho, aby sa ticho ignoroval.
- new SafeUrl(?DestinationPolicy $policy = null, bool $lookup = true) prijíma vlastné pravidlá; ak potrebujete presný dôvod, zavolajte SafeFetch::vet().
- URL adresa sa pri načítaní posúdi znovu — DNS sa medzitým môže zmeniť.

## Bez prekladu DNS

SafeUrl::withoutLookup(?DestinationPolicy $policy = null) posudzuje cez SafeFetch::precheck(): všetky pravidlá okrem prekladu — tvar, schému, port, blokovaných hostiteľov a hostiteľov aplikácie, zoznam povolených, localhost a adresu zapísanú priamo v plnom rozsahu. Formulár tak nečaká na DNS ani nezlyhá, kým sa meno ešte neprekladá. Použite ho, keď sa URL adresa uloží teraz a zavolá neskôr:

```php
$request->validate(['endpoint' => ['required', 'string', SafeUrl::withoutLookup($policy)]]);
$stored = SafeFetch::precheck($request->input('endpoint'), $policy)->toString();
```

precheck() vráti CanonicalUrl alebo vyhodí DestinationRejected a vyvolá DestinationRefused s via precheck. Meno, ktoré prejde, sa aj tak môže preložiť na privátnu adresu — ochrana ho pri každej požiadavke posúdi v plnom rozsahu. Ak sa URL adresa musí preložiť hneď, použite SafeFetch::vet().

## 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](https://roundly-consulting.com/sk/podporte-nas.md)

Odoslaním daru súhlasíte s našimi [podmienkami prijímania darov](https://roundly-consulting.com/sk/podmienky-darov.md).

[Podporte našu open-source prácu (otvorí sa v novej karte)](https://donate.stripe.com/dRmeVe8FX5PF1Qd9pXcEw00) [Pridajte sa k nám na Patreone (otvorí sa v novej karte)](https://www.patreon.com/cw/roundly)

## 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.

[Ponuka do 48 hodín](https://roundly-consulting.com/sk/kontakt.md) [Prezrieť všetky balíky](https://roundly-consulting.com/sk/open-source/navody/safe-fetch-for-laravel.md)
