[MVC] Kontrola dostępu |
[MVC] Kontrola dostępu |
18.04.2008, 17:42:14
Post
#1
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) |
Jedno krótkie pytanie.
Jak się bronicie w aplikacjach MVC przed niezalogowanym userem, który nie ma dostępu do skryptu np. user.php a próbuje odpalić skrypt ręcznie z pominięciem kontrolera? Czy jedynym sensownym rozwiązaniem (aby w widoku nie paskudzić w kodzie) jest htaccess z deny from all? pzdr -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
18.04.2008, 17:59:42
Post
#2
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) |
Deny from all to zawsze dobry pomysl, tak samo jak trzymanie plikow powyzej głównego katalogu WWW.
Tak naprawdę do końca nie rozumiem Twojego problemu. W implementacjach MVC, frameworkach, itp. zazwyczaj wszystko przechodzi przez index.php, a wszystko to co się może wykonać, jest zamknięte w klasach, więc bez jawnego odpalenia klasy (utworzenia obiektu, itp.) nic się na stanie. Mówiąc inaczej, jak w pliku user.php mam klase User, to co mnie obchodzi, że ktoś to odpali bezpośrednio? A jeśli chodzi o kontrole dostępu, to w MVC najlepiej użyć filtrów, a dokładnie jednego filtra bezpieczeństwa, który decyduje o tym czy ktoś ma dostęp do akcji/kontrolera czy też nie. -------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
18.04.2008, 18:45:31
Post
#3
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) |
Deny from all to zawsze dobry pomysl, tak samo jak trzymanie plikow powyzej głównego katalogu WWW. Tak naprawdę do końca nie rozumiem Twojego problemu. W implementacjach MVC, frameworkach, itp. zazwyczaj wszystko przechodzi przez index.php, a wszystko to co się może wykonać, jest zamknięte w klasach, więc bez jawnego odpalenia klasy (utworzenia obiektu, itp.) nic się na stanie. Mówiąc inaczej, jak w pliku user.php mam klase User, to co mnie obchodzi, że ktoś to odpali bezpośrednio? Masz rację, ale jeśli nie wyłączysz wyświetlania błędów na serwerze to zobaczysz erory i warningi. Ja wyłączam ale uważam, że i tak apache nie powinien pozwolić odpalić takiego pliku. A jeśli chodzi o kontrole dostępu, to w MVC najlepiej użyć filtrów, a dokładnie jednego filtra bezpieczeństwa, który decyduje o tym czy ktoś ma dostęp do akcji/kontrolera czy też nie. I tak robię. -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
18.04.2008, 21:19:17
Post
#4
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) |
Masz rację, ale jeśli nie wyłączysz wyświetlania błędów na serwerze to zobaczysz erory i warningi. Ja wyłączam ale uważam, że i tak apache nie powinien pozwolić odpalić takiego pliku. I tak robię. Jakie warningi, przykladowo poniższy kod jeśli go uruchomisz nic nie zrobi:
Nigdzie nie wywołujesz klasy, ona sobie jest i już. W każdym pliku akcji/modelu/widoku trzymam klasę a w index.php mam Controller->execute(); i metoda execute włącza odpowiednią klasę -------------------- |
|
|
18.04.2008, 21:34:26
Post
#5
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) |
jw.
<?php defined('SYSPATH') or die('No direct script access.'); // ?> wszystko leci przez index. -------------------- |
|
|
18.04.2008, 22:07:15
Post
#6
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
jw.
wszystko leci przez index. A jaki jest sens tego? Przecież już zostało napisane, że może sobie user otwierać pliki i tak nic nie zobaczy. Do tego jeżeli to nie są błędy składniowe, a jedynie w kodzie klas, to i tak PHP ich nie kompiluje, więc się nie wyświetlą. -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
19.04.2008, 08:39:17
Post
#7
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) |
nie wszystkie pliki to klasy, są różne rzeczy. jak to mówią "strzeżonego pan bóg strzeże" krzywdy Ci to nie zrobi
-------------------- |
|
|
19.04.2008, 23:56:26
Post
#8
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
nie wszystkie pliki to klasy, są różne rzeczy. jak to mówią "strzeżonego pan bóg strzeże" krzywdy Ci to nie zrobi Jak piszesz porządnie to masz tylko klasy, do tego zabezpieczasz .htaccess a nie w ten dziwny, obciążający wykonanie sposób. I moim zdaniem to jedyny sensowny sposób zabezpieczania przed dostępem z zewnątrz. (oczywiście jeszcze mamy ograniczenia dostępu do pliku...) -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
20.04.2008, 11:17:36
Post
#9
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) |
w takim razie większość FW jest nieporządna i basta
-------------------- |
|
|
20.04.2008, 11:18:13
Post
#10
|
|
Grupa: Zarejestrowani Postów: 853 Pomógł: 25 Dołączył: 27.08.2003 Skąd: Katowice Ostrzeżenie: (0%) |
Właściwie błędy się pojawiać jeśli mamy dziedziczenie albo implmentujemy interfejsy (np. class Klasa extends Rodzic { }). Koniec końców dyrektywa Deny, albo trzymania ponad główny katalogiem WWW dla mnie załatwia sprawę - jest to zreszą logiczne, w obrębie DOC_ROOT powinno być przecież tylko to, co może być wywołane z poziomu WWW.
-------------------- "If debugging is the process of removing bugs, then programming must be the process of putting them in..."
sobstel.org |
|
|
20.04.2008, 13:11:57
Post
#11
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
w takim razie większość FW jest nieporządna i basta To podaj mi łaskawie które korzystają, bo mi się nie chce przeglądać, a chyba wiesz co mówisz. -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
20.04.2008, 14:12:52
Post
#12
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) |
Jak piszesz porządnie to masz tylko klasy Ja wszędzie stosuję klasy, oprócz kodu JS i widoku. U mnie widok to szablon, który wyświetla dane - moim zdaniem nie ma sensu robić klasy, która będzie wyświetlała htmla - a wtedy będą błędy. Dziękuje wszystkim za odpowiedzi. Zostanę przy htaccess bo chyba najlepszy sposób. -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
20.04.2008, 14:29:04
Post
#13
|
|
Developer Grupa: Moderatorzy Postów: 3 045 Pomógł: 290 Dołączył: 20.01.2007 |
|
|
|
20.04.2008, 15:58:48
Post
#14
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) |
To podaj mi łaskawie które korzystają, bo mi się nie chce przeglądać, a chyba wiesz co mówisz. Mi też się nie chce, ale proszę: http://dev.ellislab.com/svn/CodeIgniter/tr...ies/Session.php http://trac.kohanaphp.com/browser/trunk/sy...ies/Session.php http://rapideframework.googlecode.com/svn/ Tylko proszę bez argumentów, że te akurat są *, albo, że to mało w php to jest chyba przynajmniej 50 FW a nie chce mi się tego przeglądać Nie mówie, że tak nalezy robić ale, że też jest taka mozliwość. -------------------- |
|
|
20.04.2008, 16:43:14
Post
#15
|
|
Grupa: Zarejestrowani Postów: 793 Pomógł: 32 Dołączył: 23.11.2006 Skąd: Warszawa Ostrzeżenie: (0%) |
Tylko proszę bez argumentów, że te akurat są *, albo, że to mało w php to jest chyba przynajmniej 50 FW a nie chce mi się tego przeglądać Nie mówie, że tak nalezy robić ale, że też jest taka mozliwość. Tia, szczególnie ten ostatni przydatny. Przecież nie zaprzeczam, że jest taka możliwość, tylko że bezsensowna. A skoro nie mogłeś podać od razu, to znaczy, że nie wiedziałeś, tylko powtarzałeś czyjeś zdanie (lub co gorsza, wymyśliłeś, na podstawie jednego FW), a o to mi chodziło, nie to że nie jest stosowane, ale o to że napisałeś, że jest często stosowane, skoro nie umiesz potwierdzić, to znaczy że to było gadanie aby gadać. A podważałeś moje zdanie w ten sposób, więc Twoje argumenty można wywalić do kosza, teraz nie ważne czy znajdziesz nawet 100 FW z tym, bo chodzi o to, że pisząc nie widziałeś jaki jest stan faktyczny. No dobra, kończę temat, bo chyba nie ma co kontynuować. -------------------- Algorytmy w PHP, czy ktoś o tym słyszał?
Dlaczego tak mało kobiet programuje? ponieważ nie zajmują się głupotami. |
|
|
20.04.2008, 16:53:05
Post
#16
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) |
tak zakręciłeś, że cholera wie o co Ci chodzi jak nie mogłem podać od razu skoro to z pamięci zrobiłem?!? (wszystkie powyższe FW używałem więc pamiętałem, że tam coś takiego jest). Dostałeś 3 i jeszcze Ci mało a do tego dorabiasz jakieś zakręcone teorie.
-------------------- |
|
|
20.04.2008, 17:02:08
Post
#17
|
|
Grupa: Zarejestrowani Postów: 1 873 Pomógł: 152 Dołączył: 9.04.2006 Skąd: Berlin Ostrzeżenie: (0%) |
Koledzy nie kłóćcie się. Każdy ma swoje zdanie.
Moim zdaniem jednak kolega @Sedziwoj ma rację. Jest to niepotrzebne, jeśli w plikach znajdują się same klasy. To że wywali że nie ma danej klasy (przez extends) to nic się nie stanie, chyba, że boisz się, że podwiną Ci nazwę tej wspaniałej klasy -------------------- |
|
|
20.04.2008, 17:20:06
Post
#18
|
|
Grupa: Zarejestrowani Postów: 627 Pomógł: 33 Dołączył: 1.05.2005 Skąd: Katowice Ostrzeżenie: (0%) |
Nie stawiajcie mnie w roli strony "konfliktu" (strasznie nie lubię sytuacji kiedy na siłę ktoś umieszcza mnie w nieprawdziwym kontekście aby udowodnić swoje racje). Pokazałem tylko, że tak można, i że kilka FW tego używa (widziałem to też w kilku OS CMS i forach). Temat jest ciekawy - można zapytać twórców np. Kohany dlaczego stosują takie rozwiązanie - może mają coś ciekawego do powiedzenia.
-------------------- |
|
|
20.04.2008, 19:27:58
Post
#19
|
|
Grupa: Zarejestrowani Postów: 1 190 Pomógł: 27 Dołączył: 23.04.2005 Ostrzeżenie: (0%) |
Pamiętaj że nie na wszystkich serwerach jest dostęp do plików .htaccess. Wiem, zdaje sobie sprawę. Ale pisząc aplikację wiem wcześniej na jakim serwerze będzie umieszczona. pzdr -------------------- ”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335) |
|
|
Wersja Lo-Fi | Aktualny czas: 26.04.2024 - 02:04 |