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

Bezpečnostný model

Balík stojí medzi nedôveryhodným query stringom a vašou databázou, preto sú nebezpečné časti odstránené už návrhom, nie ponechané na každý endpoint:

  • Predvolene cez allow-list — nič sa nedá filtrovať ani triediť bez deklarácie; všetko ostatné je HTTP 400 (alebo sa v režime ignore zahodí). Preklep v konfigurácii režimu vyhodí InvalidConfigurationException namiesto hádania.
  • Operátory nikdy z holého vstupu — operator() určí porovnanie v kóde; operators() rešpektuje len deklarované tokeny a čokoľvek iné berie ako doslovnú hodnotu.
  • Viazané hodnoty, identifikátory od vývojára — vstavané filtre viažu každú hodnotu ako parameter; identifikátory stĺpcov pochádzajú z vašich deklarácií a obaľuje ich gramatika dopytu, nikdy nie z requestu.
  • Zástupné znaky nerozšíria vyhľadávanie — %, _ a \ vo vstupe sa escapujú a porovnávajú s explicitnou klauzulou ESCAPE na každom driveri.
  • Ohraničená práca — limits.max_filter_values, limits.max_value_length a limits.max_sorts obmedzujú, čo si jedna URL môže vypýtať; duplicitné stĺpce triedenia sa odstránia.
  • Žiadne podstrčenie argumentov do scopov — scope dostane presne jeden argument z requestu, pokiaľ nezapnete spread: true.
  • Obmedzený odraz — chybové hlášky zopakujú najviac 5 neznámych kľúčov, každý skrátený na 64 znakov.
  • Typované stĺpce v bezpečí — FilterValueShape drží chybné uuid a id mimo PostgreSQL, takže zlá hodnota znamená prázdny výsledok, nie chybu 500.
  • Validovaná veľkosť stránky — per_page nad maximom vráti 422 a perPage() ju ešte raz pevne obmedzí.
  • Verejné názvy, súkromné stĺpce — interné názvy držia vašu schému mimo URL.

Správne negácie

Negácie znamenajú to, čo myslí človek filtrujúci zoznam: not a ncontains zahŕňajú riadky NULL, viachodnotová negácia znamená „žiadne z týchto“ (AND, nie OR) a negácie relácií používajú whereDoesntHave, takže riadok naviazaný na vylúčenú hodnotu vypadne, aj keď má iné väzby.

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.