giełda, akcje, inwestycje
 ° Forum ° Odpowiedz ° Rejestracja ° Szukaj °
Giełda samochodowa ° Numizmatyka - monety ° Poznań serwis Mercerdes ° Internetowa Auto giełda °

Aby nikt nie wrzucił bezpańskiego komentarza

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




Twoja wypowiedź

Bold Style  Italic Style  Underlined Style  Image Link  Insert URL  Email Link  Wyłącz BB code


Zanim wyślesz jakąś wiadomość z polskimi znakami, upewnij się czy kodowanie znaków w twojej przeglądarce to ISO-8859-2
 » Login  » Hasło 
 


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 °

Online: Odwiedzający - 1
+ - 0
Najwięcej odwiedzających: 77 [6 Paź 2008 01:40:40]
Odwiedzający - 77 / + - 0
krzesła druk cyfrowy philadelphia limousine kredite bäckerei
  Sony Ericsson|| odźywki|| Apartamenty Warszawa|| biurowe|| cheap apartments Rome|| Osuszacze Poznan

  • Podkręcony GeForce 9800 GTX+
  • Sparkle dodaje do swojej oferty podkręconą kartę graficzną GeForce 9800 GTX+, wyposażoną w procesor graficzny G92b, który pracuje z częstotliwością 761 MHz.
  • 20- i 22-calowe desktopy Eee TOP w planach
  • Asus i Quanta pracują już nad komputerami typu all-in-one, należącymi do rodziny Eee TOP. Modele z 20- i 22-calowymi ekranami LCD pojawią się na rynku w pierwszej połowie 2009 roku.
  • Stylowy monitor LCD od AOC
  • AOC F19 to nowy 18,5-calowy monitor LCD, oferujący elegancki design, rozdzielczość 1366 x 768 pikseli, czas reakcji 5 ms oraz współczynnik dynamicznego kontrastu 10 000:1.
  • Komputer barebone z wbudowanym wyświetlaczem
  • D10 to nazwa nowego desktopa typu barebone, który obsługuje procesory z podstawką LGA775, do 4 GB pamięci DDR2 oraz dwa dyski twarde z interfejsem SATA 3.0 Gbps.
  • MMS-y (wreszcie) w iPhonie?
  • Firma Mobispine twierdzi, że dzięki jej staraniom iPhone otrzyma wreszcie prawdziwą aplikację do wysyłania MMS-ów z każdego miejsca na Ziemi.