Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak zabezpieczyć skrypt który odpytuje bazę danych?
adam1024
post
Post #1





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 13.02.2009

Ostrzeżenie: (0%)
-----


Posiadam skrypt php do którego poprzez AJAX'a wysyłam wartość metodą POST - $_POST['wartosc'] i taką też wartość odbieram, wykonuję zapytanie do bazy oraz zwracam odpowiedź. W jaki sposób mogę zabezpieczyć ten skrypt tak aby nikt bezpośrednio się do niego nie mógł odwołać. Generalnie chodzi mi o to by uniknąć jakiegoś ataku prosto na ten skrypt, np. od jednego użytkownika.


--------------------
Lubisz okazje i promocje? Wbij na HotShops.pl z mojego refa i pozwól zdobyć mi pkt. ;)
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
Pyton_000
post
Post #2





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


możesz sprawdzać ew. czy request jest wykonany przez ajax.
Możesz też generować tokeny i sprawdzać zgodność (technika z CSRF)
Go to the top of the page
+Quote Post
adam1024
post
Post #3





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 13.02.2009

Ostrzeżenie: (0%)
-----


zastosowanie tokenów jest względnie bezpieczne tak?


--------------------
Lubisz okazje i promocje? Wbij na HotShops.pl z mojego refa i pozwól zdobyć mi pkt. ;)
Go to the top of the page
+Quote Post
redeemer
post
Post #4





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Co to znaczy "atak prosto na ten skrypt", bo chyba nie o CSRF Ci chodzi.

Cytat(Pyton_000 @ 27.05.2015, 10:07:14 ) *
możesz sprawdzać ew. czy request jest wykonany przez ajax.
Żadne zabezpieczenie.


--------------------
Go to the top of the page
+Quote Post
adam1024
post
Post #5





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 13.02.2009

Ostrzeżenie: (0%)
-----


mam skrypt np. ( baza.php ) który po wykryciu zmiennej $_POST['wartosc'] wykonuje zapytanie w bazie danych. W jaki sposób zablokować osobie która chciałaby mi zaszkodzić możliwość automatycznego odpytania bazy . By nie mógł wysłać z automatu jakimś programem danych POST co przełożyłoby się na dużą ilość zapytań w bazie, czy nawet przyblokowanie serwera


--------------------
Lubisz okazje i promocje? Wbij na HotShops.pl z mojego refa i pozwól zdobyć mi pkt. ;)
Go to the top of the page
+Quote Post
Pyton_000
post
Post #6





Grupa: Zarejestrowani
Postów: 8 068
Pomógł: 1414
Dołączył: 26.10.2005

Ostrzeżenie: (0%)
-----


Cytat(redeemer @ 27.05.2015, 10:16:17 ) *
Co to znaczy "atak prosto na ten skrypt", bo chyba nie o CSRF Ci chodzi.

Żadne zabezpieczenie.

Może i żadne ale przynajmniej pierwsza linia oporu zdusi gimbazę smile.gif

Ale tutaj chyba jedyne sensowne jest zabespieczenie CSRF,
Go to the top of the page
+Quote Post
redeemer
post
Post #7





Grupa: Zarejestrowani
Postów: 915
Pomógł: 210
Dołączył: 8.09.2009
Skąd: Tomaszów Lubelski/Wrocław

Ostrzeżenie: (0%)
-----


Cytat(Pyton_000 @ 27.05.2015, 10:50:42 ) *
Może i żadne ale przynajmniej pierwsza linia oporu zdusi gimbazę smile.gif

Ale tutaj chyba jedyne sensowne jest zabespieczenie CSRF,

CSRF nie służy do tego przecież.

@adam1024: Jak się tak boisz o wydajność bazy danych to zaaplikuj jakiś mechanizm cache. Zresztą teraz też ktoś sobie może automat napisać, który po prostu będzie wchodził na Twoją stronę i też zapytania do bazy będą wykonywane (no chyba, że tam ich nie ma).


--------------------
Go to the top of the page
+Quote Post
adam1024
post
Post #8





Grupa: Zarejestrowani
Postów: 110
Pomógł: 0
Dołączył: 13.02.2009

Ostrzeżenie: (0%)
-----


Zrobiłem mechanizm tokenów, i jak narazie komuś raczej ciężko będzie teraz zawiesić stronę za pomocą np. jMeter'a - a wczoraj mi sie to udało, przy ustawieniu 200 użytkowników w przeciągu 1 sekundy bez przerwy przy zapytaniu bezpośrednim. Dziś jeszcze zrobiłem odstęp między keyupem ( więc trzeba poczekać około 3 sekund na wynik zapytania ) - w przypadku gdy ktoś sobie napisze ten automat będzie musiał poczekać te 3 sekundy ( niby niewiele ale zawsze jakaś "przeszkoda", "blokada" dla ciągłego wysyłania zapytań.

@redeemer - jakąś ciekawą literaturę, artykuł nt. cache'owania możesz polecić?


--------------------
Lubisz okazje i promocje? Wbij na HotShops.pl z mojego refa i pozwól zdobyć mi pkt. ;)
Go to the top of the page
+Quote Post
darek334
post
Post #9





Grupa: Zarejestrowani
Postów: 87
Pomógł: 3
Dołączył: 23.04.2013

Ostrzeżenie: (30%)
XX---


zabezpieczenie tokenowe jeśli tak samo to rozumiem jak ty, pomaga tylko przy powtórnym wysłaniu forma, chyba jak na moją wiedzę tylko blokada ip po pewnej liczbie zapytań na dany czas by pomogła...
Go to the top of the page
+Quote Post
Xelah
post
Post #10





Grupa: Zarejestrowani
Postów: 139
Pomógł: 24
Dołączył: 12.05.2013
Skąd: Hamburg

Ostrzeżenie: (0%)
-----


Cytat(adam1024 @ 27.05.2015, 11:45:00 ) *
Zrobiłem mechanizm tokenów, i jak narazie komuś raczej ciężko będzie teraz zawiesić stronę za pomocą np. jMeter'a - a wczoraj mi sie to udało, przy ustawieniu 200 użytkowników w przeciągu 1 sekundy bez przerwy przy zapytaniu bezpośrednim. Dziś jeszcze zrobiłem odstęp między keyupem ( więc trzeba poczekać około 3 sekund na wynik zapytania ) - w przypadku gdy ktoś sobie napisze ten automat będzie musiał poczekać te 3 sekundy ( niby niewiele ale zawsze jakaś "przeszkoda", "blokada" dla ciągłego wysyłania zapytań.

@redeemer - jakąś ciekawą literaturę, artykuł nt. cache'owania możesz polecić?


Jak już wspomniał @redeemer, CSRF nie służy do tego, co chcesz zrobić. Ty chcesz się zapespieczyć przez DOS a nie CSRF. Dwie kompletnie różne i nie związane ze sobą rzeczy.

Poza tym niedoceniasz jMeter. Napisanie prostego BeanShell-a, który najpierw zaczyta token, a później go wyśle do Ciebie to kwestia może 10 minut. W niczym Ci nie pomoże takie zabezpieczenie przed DOS.
Jeśli ktoś będzie chciał to zrobić to i tak to zrobi, bo tego się nie obsłużyć na poziomie kodu.

Podsumowując - Nie możesz ufać niczemu, co pochodzi z przeglądarki, bo sfałszowanie tego jest prostsze, niż zabrać dziecku cukierek.
Dodatkowo, nie martw się o DOS, bo nie masz strony, która jest odiwedzana przez miliony userów, i ktoś może chcieć Ci zaszkodzić. Jak już będziesz tak daleko, to będziesz miał środki na odpowiednie zabezpieczenie przed DOS.
Jak to ktoś mądry kiedyś powiedział: "Don't think about performance issue. You don't have performance issues... yet".
Go to the top of the page
+Quote Post
darek334
post
Post #11





Grupa: Zarejestrowani
Postów: 87
Pomógł: 3
Dołączył: 23.04.2013

Ostrzeżenie: (30%)
XX---


Po za tym tokeny w niczym nie uniemożliwiają odpytywania skryptu...
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 18:31