| ° Forum ° Odpowiedz ° Rejestracja ° Szukaj ° | |
| Giełda samochodowa ° Numizmatyka - monety ° Poznań serwis Mercerdes ° Internetowa Auto giełda ° |
| Forum / php / Aby nikt nie wrzucił bezpańskiego komentarza |
| Autor | Wiadomość |
| WebCM
|
Posted: 25 Wrz 2008 14:06:00 Jak ochronić skrypt przed dodawaniem komentarzy niepowiązanych z żadnym elementem (artykułem, plikiem, itd.)? Jest 5 typów kategorii (choć może ich być więcej): artykuły, pliki, strukturze typów (np. nazwa tabeli w bazie danych) przechowuję w pliku .ini. ALE: Można też komentować inne elementy (np. sondę, użytkownika, wolną stronę, inny dowolny moduł), które mogą mieć całkiem inną strukturę. Po prostu komponent komentarzy jest dostępny dla innych modułów. Aktualnie komentarze można edytować na osobnej podstronie. W adresie URL są przekazywane parametry: * typ elementu - numeryczny, np. 1 dla artykułu, 10 dla użytkownika, itd. * ID elementu - numeryczny Uprawnieni mogą edytować lub usuwać komentarze. Wtedy w adresie URL podajemy tylko ID komentarza. Złośliwy internauta może podmienić te wartości w formularzu za pomocą narzędzia Firebug. W ten sposób system doda komentarz, który nie jest powiązany z żadnym elementem. Stąd pytanie - jak chronić się przed takim atakiem? |
| Bartosz Skorupa
|
Posted: 25 Wrz 2008 14:27:43 Jak ochronić skrypt przed dodawaniem komentarzy niepowiązanych z
żadnym elementem (artykułem, plikiem, itd.)? Jest 5 typów kategorii (choć może ich być więcej): artykuły, pliki, strukturze typów (np. nazwa tabeli w bazie danych) przechowuję w pliku .ini. ALE: Można też komentować inne elementy (np. sondę, użytkownika, wolną stronę, inny dowolny moduł), które mogą mieć całkiem inną strukturę. Po prostu komponent komentarzy jest dostępny dla innych modułów. Aktualnie komentarze można edytować na osobnej podstronie. W adresie URL są przekazywane parametry: * typ elementu - numeryczny, np. 1 dla artykułu, 10 dla użytkownika, itd. * ID elementu - numeryczny Uprawnieni mogą edytować lub usuwać komentarze. Wtedy w adresie URL podajemy tylko ID komentarza. Złośliwy internauta może podmienić te wartości w formularzu za pomocą narzędzia Firebug. W ten sposób system doda komentarz, który nie jest powiązany z żadnym elementem. Stąd pytanie - jak chronić się przed takim atakiem? Możesz przekazać ID elementu przez $_SESSION; |
| Bartosz Skorupa
|
Posted: 25 Wrz 2008 14:33:12 Jak ochronić skrypt przed dodawaniem komentarzy niepowiązanych z żadnym elementem (artykułem, plikiem, itd.)? Jest 5 typów kategorii (choć może ich być więcej): artykuły, pliki, strukturze typów (np. nazwa tabeli w bazie danych) przechowuję w pliku .ini. ALE: Można też komentować inne elementy (np. sondę, użytkownika, wolną stronę, inny dowolny moduł), które mogą mieć całkiem inną strukturę. Po prostu komponent komentarzy jest dostępny dla innych modułów. Aktualnie komentarze można edytować na osobnej podstronie. W adresie URL są przekazywane parametry: * typ elementu - numeryczny, np. 1 dla artykułu, 10 dla użytkownika, itd. * ID elementu - numeryczny Uprawnieni mogą edytować lub usuwać komentarze. Wtedy w adresie URL podajemy tylko ID komentarza. Złośliwy internauta może podmienić te wartości w formularzu za pomocą narzędzia Firebug. W ten sposób system doda komentarz, który nie jest powiązany z żadnym elementem. Stąd pytanie - jak chronić się przed takim atakiem? Możesz przekazać ID elementu przez $_SESSION; P.S. Zamiast ID elementu to "typ elementu". |
| Paweł Piskorz
|
Posted: 25 Wrz 2008 14:36:32 Złośliwy internauta może podmienić te wartości w formularzu za pomocą
narzędzia Firebug. W ten sposób system doda komentarz, który nie jest powiązany z żadnym elementem. Stąd pytanie - jak chronić się przed takim atakiem? Może tak po prostu sprawdzać przed dodaniem, czy dany element istnieje? Albo skorzystaj z kluczy obcych. |
| Lemat
|
Posted: 25 Wrz 2008 15:45:19 Złośliwy internauta może podmienić te wartości w formularzu za pomocą
narzędzia Firebug. W ten sposób system doda komentarz, który nie jest powiązany z żadnym elementem. Stąd pytanie - jak chronić się przed takim atakiem? W momencie obrabiania requestu "POST" w skrypcie PHP sprawdzić czy uprawnienia zalogowanego użytkownika są wystarczające do dokonania zmian. Kropka. |
| WebCM
|
Posted: 25 Wrz 2008 17:41:45 Powiedzmy, że każdy może dodać komentarz. Niestety, każdy też może zmodyfikować formularz za pomocą Firebug. sprawdzać przed dodaniem, czy dany element istnieje?
Właśnie w tym problem, że w niektórych przypadkach nie można tego sprawdzić bez zdobycia informacji np. o nazwie tabeli, w której moduł przechowuje dane. ID przez $_SESSION... hmm... dobry pomysł (można zapisać odwiedzone ID oraz TYPY), ale są też haczyki: * sesja wygasa w przypadku długich komentarzy Jest jeszcze 1 pomysł, chociaż nie jest on pewnie najlepszy - zezwalać na dodanie komentarza tylko wtedy, gdy widać otwarty artykuł / plik / itd. - czyli nie można tego zrobić na osobnej podstronie. Ewentualnie jakieś zmiany w implementacji... Tylko jakie? |
| Jacek Karczmarczyk
|
Posted: 25 Wrz 2008 18:10:45 Powiedzmy, że każdy może dodać komentarz. Niestety, każdy też może
zmodyfikować formularz za pomocą Firebug. sprawdzać przed dodaniem, czy dany element istnieje?
Właśnie w tym problem, że w niektórych przypadkach nie można tego sprawdzić bez zdobycia informacji np. o nazwie tabeli, w której moduł przechowuje dane. To wrzuć nazwę tabeli do formularza |
| WebCM
|
Posted: 27 Wrz 2008 07:25:36 Mogę wrzucić nazwę tabeli, ale nie będę wiedział, czy można w ogóle dodawać komentarze do danego elementu. Po prostu moduły niestandardowe mogą mieć inną implementację. Powszechnie stosuję `access` = 1, ale elementy mogą mieć jeszcze inne opcje, np. "pozwól komentować". Co myślicie o tym, aby dodawanie komentarza było możliwe tylko spod artykułu / nowości / ankiety / ...? Czyli formularz jest wyświetlany pod komentowaną pozycją oraz poprzednimi komentarzami. Nie można by było przejść na osobną podstronę - tam byłaby możliwa tylko edycja przed uprawnione osoby. Jeśli to zły pomysł, to pewnie pozostaną sesje. |
| Bartosz Skorupa
|
Posted: 27 Wrz 2008 08:01:07 Mogę wrzucić nazwę tabeli, ale nie będę wiedział, czy można w ogóle
dodawać komentarze do danego elementu. Po prostu moduły niestandardowe mogą mieć inną implementację. Powszechnie stosuję `access` = 1, ale elementy mogą mieć jeszcze inne opcje, np. "pozwól komentować". Co myślicie o tym, aby dodawanie komentarza było możliwe tylko spod artykułu / nowości / ankiety / ...? Czyli formularz jest wyświetlany pod komentowaną pozycją oraz poprzednimi komentarzami. Nie można by było przejść na osobną podstronę - tam byłaby możliwa tylko edycja przed uprawnione osoby. Jeśli to zły pomysł, to pewnie pozostaną sesje. Nie wiem jak masz dokładnie skonstruowaną aplikację. Ale może zrobić dla każdego z modułów osobny obiekt który będzie odpowiadał za dodawanie dla danego modułu komentarza i tam na stałe wszyć nazwę moduły (nie wiem jak masz skonstruowane tabele z komentarzami więc trochę strzelam). Możesz użyć wartości domyślnej w tabeli z komentarzami -1 jako id modułu i do wpisaniu sprawdzać czy jest tam wartość =0 jeśli tak to OK jeśli nie do usuń ten wpis. |
| Artur Muszyński
|
Posted: 27 Wrz 2008 14:36:13 Co myślicie o tym, aby dodawanie komentarza było możliwe tylko spod
artykułu / nowości / ankiety / ...? Czyli formularz jest wyświetlany pod komentowaną pozycją oraz poprzednimi komentarzami. Nie można by było przejść na osobną podstronę - tam byłaby możliwa tylko edycja przed uprawnione osoby. Czy ty się teraz dopiero zastanawiasz, jak ma działać twoja aplikacja? Nie za późno? Masz jakąś stronę w PHP. Na jakiejś podstawie wiesz, co masz wyświetlić, czy user ma uprawnienia, czy może komentować. Dlaczego przy zapisie nagle ci ta cała wiedza ulatuje? Jedyna wartość, którą trzeba pamiętać w sesji, to id użytkownika. Przemyśl sobie wszystko od początku. artur |
|
Czas ładowania strony (sek.): 0.420 users miniBB.net © 2001-2008 | Polityka Prywatności e-giełdy + opisy gg + kumy fubi ° oko na maroko ° nimda °
|