![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Zgodnie z MVC zabezpieczenie typu Captcha powinno byc sprawdzane w Modelu czy Kontrolerze?
-------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
W kontrolerze. Captcha odpowiada za sterowanie: autoryzowanie dostepu lub jego brak. Nie ma specjalnie duzo wspolngo z danymi.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 4 Pomógł: 0 Dołączył: 20.07.2008 Ostrzeżenie: (0%) ![]() ![]() |
W kontrolerze. Captcha odpowiada za sterowanie: autoryzowanie dostepu lub jego brak. Nie ma specjalnie duzo wspolngo z danymi. Jak to nie ma wiele wspólnego z danymi? Captha powinna być sprawdzana przy walidacji danych przesłanych z formularza do zapisu - czyli w modelu. |
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 206 Pomógł: 18 Dołączył: 6.03.2006 Skąd: Szczecin Ostrzeżenie: (0%) ![]() ![]() |
moze to troche przerost formy nad trescia, ale jesli masz dosc rozbudowany system i chcesz w jakis dosc elastyczny sposob zeimplementowac CAPTCHA, to ja bym to w "ostatecznej formie ewolucji" widzial tak, ze masz klase kontrolera do captchy, zupelnie odseparowana od samego przetwarzania danych i w modelu masz najpierw odwolanie do metody kontrolera CAPTCHA i w zaleznosci o jego rezultatow podejmujesz kolejne kroki innych klas, ale to jest tak jak juz powiedzialem wersja dosc rozbudowana, takze w mniejszych ujeciach moze stanowic wspomniany "przerost formy nad trescia".
-------------------- Wrzasq.pl
Tworzenie stron i aplikacji internetowych. Chillout Development - tworzenie stron i aplikacji internetowych. |
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 326 Pomógł: 121 Dołączył: 23.07.2008 Skąd: Wrocław Ostrzeżenie: (0%) ![]() ![]() |
Jak to nie ma wiele wspólnego z danymi? Captha powinna być sprawdzana przy walidacji danych przesłanych z formularza do zapisu - czyli w modelu. Ale captchy nie skladujesz dluzej niz moment po wygenerowaniu - nie jest Twoja dana skladowana jak np. tresc artykulu czy dane uzytkownika. |
|
|
![]()
Post
#6
|
|
![]() Grupa: Moderatorzy Postów: 4 465 Pomógł: 137 Dołączył: 26.03.2004 Skąd: Gorzów Wlkp. ![]() |
Tak na moje oko, to zależy od upodobań. Powinna być sprawdzana tam, gdzie dane użytkownika, najlepiej na samym początku. Jako, że jest to raczej zabezpieczenie, to powinno być odseparowane od pozostałych danych. Dla przykładu: Załóżmy, że mamy klasę walidującą dane
Captcha jest teraz dołączana do walidacji, ale nie jest związana z modelem, bo i z jakiej racji? Mogę sobie zażyczyć, aby kliknięcie w link pokazujący jakąś treść było poprzedzone sprawdzeniem użytkownika. Nie ma tu wówczas modelu danych - jest tylko żądanie, którego warunkiem wykonania jest poprawnie wpisany kod. Jest to wówczas bardziej związane z autoryzacją. Na pewno nie powinno to zostać wmieszane w sam model danych. Pozdrawiam. -------------------- To think for yourself you must question authority and
learn how to put yourself in a state of vulnerable, open-mindedness; chaotic, confused, vulnerability, to inform yourself. Think for yourself. Question authority. |
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
To powiem tak, ja to widze w ten sposob (na przykladzie Cake):
Stworzylem sobie komponent Captcha, ktory implementuje w Kontrolerze. Poniewaz captcha wystepuje w tym przypadku przy formularzu (dowolnym), wiec najpierw waliduje pola z formularza, a na koncu pole typu captcha, wyglada to mniejwiecej tak w modelu:
Uzyc w Modelu wbudowanej obslugi sesji nie moge. Zawsze jest rozwiazanie z uzyciem tablic $_SESSION ale to chyba nie tedy droga? Wiec jak to rozwiazac? Wydaje mi sie ze captcha poprostu powinna byc sprawdzana jak inne dane formularza, czyli w modelu... Ten post edytował kicaj 29.07.2008, 21:42:29 -------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]()
Post
#8
|
|
![]() Grupa: Zarejestrowani Postów: 1 415 Pomógł: 117 Dołączył: 7.09.2005 Skąd: Warszawa Ostrzeżenie: (0%) ![]() ![]() |
Captcha powinno być sprawdzane tam gdzie następuje walidacja. Jeżeli framework waliduje w modelu - zrób to w modelu. Jeżeli walidacja jest transparentna (np w plikach konfiguracyjnych) - zrób to tam.
Nie chodzi o upodobania, tylko o narzędzia ![]() Ja korzystam z Agavi. Tam walidacja jest ustawiana w pliku XML. Dopisałem sobie walidator captchy - jeżeli sie nie zgadza - rzuca błędem walidacji, jeżeli jest okay to dane z formularza trafiają do kontrolera i captchą nie przejmuje się w ogóle (nawet nieraz usuwam z danych z formularza). Ten post edytował LBO 30.07.2008, 00:25:29 |
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 1 640 Pomógł: 28 Dołączył: 13.02.2003 Skąd: Międzyrzecz/Poznań Ostrzeżenie: (0%) ![]() ![]() |
Ja tez uwazam ze w Modelu, pytanie teraz jak rozwiazac dostep z modelu do sesji (w Cake oczywiscie)?
-------------------- PHP Developer
"Nadmiar wiedzy jest równie szkodliwy jak jej brak" Émile Zola |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 24.07.2025 - 18:38 |