![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 532 Pomógł: 24 Dołączył: 15.04.2011 Skąd: Kalisz Ostrzeżenie: (0%) ![]() ![]() |
Próbowałem już różnych filtrowań, w różnych momentach działania aplikacji lecz żaden nie spełniał moich oczekiwań - zawsze było coś co nie działało tak jak powinno.
Kiedy i jak bardzo filtrować dane pochodzące od użytkownika? Nie mówie tutaj o Froncie - bo tutaj filtruje zawsze wszystko i nie ma zmiłuj. 1. Od razu podczas pobierania danych z POST? - ok, zapisuję takie dane w DB i przefiltrowane dane mają encje HTML, które później sa w wielu miejscach wyświetlane, ale równeż w tytule paska przeglądarki, co czasami sprawia, że zamiast apostrofu mam encję widczną i muszę to naprawiać funkcją htmlspecialchars_decode. 2. Zapisywać dane czysto pobrane od usera ale filtrować dopiero podczas wyświetlania? - zapisuję do bazy za pomocą nakładki na PDO więc wykonuje escape wartości, ale trzeba byłoby pamiętać, że wyświetlana wartość, na przykład tytuł strony musi być przefiltrowana na stronie, by usunąć znaczniki HTML (by ktoś nie stwierdził, że ładnie będzie tytuł pochylić). 3. Filtrować tylko i wyłącznie kod HTML a całą resztę zostawić i filtrować podczas wyświetlania. Ale to jest wyjście podobne do punktu drugiego. Jak wy to rozwiązujecie w swoich aplikacjach? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 36 559 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
W takim razie nie zgodzę się z tym "faktem dotyczący błędu"
Skoro i tak filtr, nie przepusci tego co nie wolno to nie widze problemu, by walic to, na wypadek, jakby filtr zawiodl, bo programista źle go napisał. Cytat Nie możesz decydować za użytkownika co on wpisuje Mogę. Jeśli jest jasna informacja: "tu kodu HTML nie wolno ci wpisac", to w zgodzie z sumieniem mogę go usunac, jesli user go wpisał.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Skoro i tak filtr, nie przepusci tego co nie wolno to nie widze problemu, by walic to, na wypadek, jakby filtr zawiodl, bo programista źle go napisał. Mam wrażenie, że chyba nigdy nie miałeś okazji modyfikować / rozwijać istniejącego systemu (IMG:style_emoticons/default/wink.gif) . Myślisz tylko w kategoriach "tu i teraz". Jak nadasz filtr, to za jakiś czas możesz albo chcieć go zdjąć albo zmienić jego zasadę działania i wtedy będzie lipa, bo trwale zmienionych danych nie odmienisz, a w prawidłowej implementacji, traktując dane jako informację abstrakcyjną, możesz zmieniać dowolnie sposób prezentacji i nigdy nie będzie z tym problemu. Istnieje zasada, wedle której nie należy nigdy zakładać, że dana rzecz się nigdy nie zmieni. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 9.10.2025 - 00:45 |