Wpis z mikrobloga

Jak wiadomo Laravel sam zabezpiecza bazę danych przed sql injection itp.
Rozchodzi się o zapis kodu HTML, gdzie nie można go zwyczajnie wyświetlić z bazy i nie może się wykonać?
Jest jakaś funkcja w Laravel odpowiedzialna za to?

#php, #laravel
  • 6
@pawlo896: Do wyświetlania HTMLa w Blade służy {!! !!} zamiast . Zaś sam content pobrany z bazy musisz zdekodować bo oczywiście nie jest on trzymany 'na czysto'. Użyj htmlentitydecode() przykład:

{!! html_entity_decode($html) !!}
Jak wiadomo Laravel sam zabezpiecza bazę danych przed sql injection itp.


@pawlo896: Precyzyjniej colego, bo ktoś jeszcze pomyśli, że tak faktycznie jest.

O ile korzystasz z ORMa, to wartości są automatycznie bindowane przez tego ORMa przed wsadzeniem do bazki.

Ale jeśli tylko gdziekolwiek pominiesz ORMa, to oczywiście zabezpieczać należy samemu.
Zaś sam content pobrany z bazy musisz zdekodować bo oczywiście nie jest on trzymany 'na czysto'.


@kWeb24: Jak to „oczywiście”? Larwa z automata puszcza htmlentities jak wsadza wartości do bazki? :D :D :D LOOOOL, jak tak, to byłby niezły fakap.

1. W bazie należy trzymać czyste wartości
2. Escape'ować należy tam, gdzie się używa. Czyli np przy wsadzaniu do HTMLa, escape'uje się dla HTMLa. Przy wsadzaniu do JSONa, escape'uje się dla
{!! htmlentitydecode($html) !!}


@Jurigag: @MacDada: Ale mi o to tylko chodziło. Jak to jest zapisywane w bazie to widzę, ponieważ mam do niej dostęp i mogę sobie sprawdzić. Raczej trudniej wyszukać mi było odpowiedniej funkcji, która wyświetli mi HTML. Nie mogłem się domyślić jak to nazwać.

@kWeb24: Dzięki.