Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> [PHP]Jak najlepiej zabezpieczyć stronę przed atakami XSS i CSRF?
-Gość-
post
Post #1





Goście







Czy taki kod:

  1. if (!empty($_POST)) array_walk_recursive($_POST, 'CleanTags');
  2. if (!empty($_GET)) array_walk_recursive($_GET, 'RemoveXSS');
  3. if (!empty($_COOKIE)) array_walk_recursive($_COOKIE, 'CleanTags');
  4. if (!empty($_SERVER)) array_walk_recursive($_SERVER, 'CleanTags');
  5. if (!empty($_SESSION)) array_walk_recursive($_SESSION, 'CleanTags');
  6. if (!empty($_REQUEST)) array_walk_recursive($_REQUEST, 'CleanTags');
  7.  
  8. function CleanTags(&$val, $index) {
  9. $val = strip_tags($val);
  10. }


jest dobrym zabezpieczeniem przede XSS i CSRF? Czy można to zrobić jakoś lepiej?
Go to the top of the page
+Quote Post
-Gość-
post
Post #2





Goście







W drugiej linijce chciałem oczywiście napisać:
if (!empty($_GET)) array_walk_recursive($_GET, 'CleanTags');
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #3





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

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


http://forum.php.pl/index.php?showtopic=189410
Go to the top of the page
+Quote Post
-Gość-
post
Post #4





Goście







A czy ten sposób, który podałem nie jest dobry?
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #5





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

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


Cytat(Gość @ 1.08.2012, 12:50:44 ) *
A czy ten sposób, który podałem nie jest dobry?

Nijak nie zabezpiecza przed CSRF.
Go to the top of the page
+Quote Post
-Gość-
post
Post #6





Goście







Ale przecież ten kod usuwa wszystkie znaczniki jakie użytkownik może gdziekolwiek podać (pole formularza, doklejenie do adresu, itd.), a żeby CSRF się udał atakujący musi mieć chyba możliwość wstawiania znaczników?
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #7





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

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


Eee. Mylisz pojęcia.

http://pl.wikipedia.org/wiki/Cross-site_request_forgery
Go to the top of the page
+Quote Post
-Gość-
post
Post #8





Goście







Tak, z tego co teraz doczytałem najważniejsze w ochronie przed CSRF jest, żeby sprawdzać poprawność tokena, ale ochrona przed XSS jest chyba częścią ochrony przed CSRF (przynajmniej wg. tego co jest napisane tutaj - "Make sure your site is not vulnerable to XSS")?
Go to the top of the page
+Quote Post
wNogachSpisz
post
Post #9





Grupa: Zarejestrowani
Postów: 1 233
Pomógł: 87
Dołączył: 6.03.2009

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


Strona nie musi być podana na XSS żeby możliwe było przeprowadzenie ataku CSRF.
Nawet na forum php.pl można przeprowadzić niegroźny atak CSRF. Mogę np. spowodować, że Twoj login pojawi się na liście odwiedzjących mój profil. Wystarczy obrazek w treści posta który przekieruje na odpowiedni URL.

Ten post edytował wNogachSpisz 1.08.2012, 14:57:59
Go to the top of the page
+Quote Post
-Gość-
post
Post #10





Goście







Pozostaje kwestia w jaki sposób przechowywać token? W przypadku formularzy można go schować w polu hidden. A jak będzie w przypadku odnośników? Gdzie go można przechowywać? Na pewno w samym adresie URL, ale czy oprócz tego (nie chciałbym przechowywać tokena w adresie URL bo to by trochę spaskudziło przyjazne adresy) jest jeszcze jakiś inny sposób? Może jakoś w zmiennej sesji?
Go to the top of the page
+Quote Post
CuteOne
post
Post #11





Grupa: Zarejestrowani
Postów: 2 958
Pomógł: 574
Dołączył: 23.09.2008
Skąd: wiesz, że tu jestem?

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


Odpowiedź jest dość prosta - wszelkie akcje typu "zmień coś" (np. akcja "Usuń moje konto") wstaw do formularza z tokenem. Pozostałe akcje nie będą interesowały potencjalnego hakiera

Ten post edytował CuteOne 4.08.2012, 23:18:03
Go to the top of the page
+Quote Post
-Gość-
post
Post #12





Goście







No ale jeżeli np. po zalogowaniu w panelu użytkownika jest link "Usuń moje konto", to taka akcja raczej na pewno będzie bardzo interesowała hakera.
Go to the top of the page
+Quote Post
!*!
post
Post #13





Grupa: Zarejestrowani
Postów: 4 298
Pomógł: 447
Dołączył: 16.11.2006

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


Cytat(Gość @ 5.08.2012, 10:34:58 ) *
No ale jeżeli np. po zalogowaniu w panelu użytkownika jest link "Usuń moje konto", to taka akcja raczej na pewno będzie bardzo interesowała hakera.


Nawet bardzo. Jednak nie widziałem jeszcze serwisu, który umożliwiałby usunięcie konta zwyczajnie po kliknięciu w link.

Ten post edytował !*! 5.08.2012, 10:14:27
Go to the top of the page
+Quote Post

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

 



RSS Aktualny czas: 18.09.2025 - 19:13