Randallmaster
1.08.2014, 11:09:17
W jaki sposób najlepiej zabezpieczyć pola input przed wpisywaniem kodów html czy też java script?
SmokAnalog
1.08.2014, 11:10:11
A po co chcesz zabezpieczać pola przed wpisywaniem czegokolwiek? Nie lepiej zabezpieczyć wyjście przed interpretowaniem tego kodu?
Randallmaster
4.08.2014, 11:38:29
htmlspecialchars() wystarczy?
Pyton_000
4.08.2014, 11:46:28
strip_tags
SmokAnalog
4.08.2014, 13:00:47
Pyton, ja jestem przeciwnikiem JAKIEJKOLWIEK ingerencji w treść od użytkownika, oczywiście poza cenzurą. Dlaczego mamy zakazać komuś napisać np. <LOL> albo "Lubię tag <script>!"?
Tak,
htmlspecialchars to dobry wybór i wystarczy. Zalecam użyć tego dopiero przy wyświetlaniu, a nie zapisywaniu.
ZaXaZ
4.08.2014, 13:13:57
ja nie polecam strip_tags, mialem problem z wyslaniem "<3"
nospor
4.08.2014, 13:23:31
Bo wszystko zalezy od tego, czym dane pole bedzie.
Jak pole ma byc np. loginem, to nie ma sensu pozwalac na tagi i mozna spokojnie uzywac strip_tags przed zapisem do bazy.
Zas gdy pole ma byc wiadomością w czacie (tu uklon do ZaXaZ) to raczej pozwalamy na tagi, bo ludzie chcą czasem podac kod czy durną emotke.
Niezależnie od tego czy uzywamy strip_tags czy nie to htmlspecialchars jest dobrym nawykiem (procz sytuacji, gdy zezwalamy na pelny kod html)
redeemer
4.08.2014, 13:50:57
htmlspecialchars lub htmlentities należy używać z flagą ENT_QUOTES.
SmokAnalog
4.08.2014, 13:51:42
Nospor, a jaki jest niby sens strip_tags w polu z loginem? Login powinno się najpierw dokładnie przebadać i zakazać dziwnych znaków. A jak ich nie ma (w tym przypadku nawiasów kątowych), to używanie strip_tags nie ma najmniejszego sensu.
nospor
4.08.2014, 14:03:28
No jesli masz porządny walidator to tak, strip_tags nie ma sensu.
Pole login to byl przyklad
SmokAnalog
4.08.2014, 14:10:03
Nawet bez walidatora to nie ma sensu. Ktoś wpisuje w polu login wartość "kala<script>fior" to zakładamy, że się pomylił i chodziło mu o "kalafior"?
nospor
4.08.2014, 14:11:24
Tak, jak nie masz walidatora to pozbywasz sie smieci przez strip_tags, bo po grzyba mają sie wpisywac do bazy?
SmokAnalog
4.08.2014, 14:25:37
Jak nie masz walidatora loginu to jesteś idiotą, a nie używasz strip_tags.
nospor
4.08.2014, 14:41:13
Jak nie czytasz ze zrozumieniem to jestes idiotą
Cytat
No jesli masz porządny walidator to tak, strip_tags nie ma sensu.
Poraz kolejny pisze:
LOGIN to byl tylko przyklad. Fakt, moze nieszczesnie dobrany.
Zdarzają sie pola, gdy nie potrzba walidatora, gdyz ogolnie wpuszczamy wszystko. Nie chcemy jednak jako tako tagow, wiec robimy strip_tags oraz robimy htmlspecialchars tak czy siak.
SmokAnalog
4.08.2014, 15:50:45
Cytat(nospor @ 4.08.2014, 15:41:13 )

Nie chcemy jednak jako tako tagow
Tylko jakie jest tego logiczne wytłumaczenie? Dlaczego wywalamy komuś z jego wypocin fragmenty między < i >? Dlaczego więc nie wywalamy kodu C++ albo Asemblera?
Funkcja
strip_tags nie służy i nigdy nie służyła do oczyszczania wpisów od użytkowników. Służy do WYŁUSKANIA czystego tekstu ze stringa będącego kodem HTML.
nospor
4.08.2014, 15:52:26
Dlaczego? Poniewaz ktos w danym miejscu tak chce. Jego serwis, jego prawo.
SmokAnalog
4.08.2014, 16:04:56
Aha.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.