Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> Jak zabezpieczyć?, Jak zabezpieczyć zaawansowany portal
-Antidote-
post
Post #1





Goście







Witam,

Moje pytanie kieruję do bardziej zaawansowanych programistów php. Ponieważ ostatnio zajmuję się współpracą przy tworzeniu serwisu aukcyjnego bazującego właśnie na php i MySQL, zacząłem zastanawiać się nad kwestią bezpieczeństwa danych tam przechowywanych. Serwis ma docelowo obsługiwać kilka do kilkunastu tysięcy użytkowników. Chciałbym, aby stopień bezpieczeństwa był porównywalny np. do Allegro. Chodzi mi bardziej o rodzaje zabezpieczeń, niż konkretne linie kodu. Jakie techniki bezpieczeństwa są tam stosowane? A może jakie nie są, a powinny? Jak przebiega proces autoryzacji użytkowników? Czy korzystać z obsługi sesji i cookies? A może zastosować kodowanie plików php? Serwis będzie umożliwiał przesyłanie pieniędzy pomiędzy użytkownikami, tak jak w Płatnościach Allegro, więc kwestia bezpieczeństwa jest tu bardzo ważna.

Z góry dziękuję za wszelkie sugestie i komentarze, chciałbym zdobyć jak najwięcej informacji na ten temat. Jeśli ktoś dysponuje konkretnymi linkami do artykułów / tutoriali, chętnie się z nimi zapoznam.

Pozdrawiam smile.gif
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi (1 - 10)
E-d
post
Post #2





Grupa: Zarejestrowani
Postów: 57
Pomógł: 0
Dołączył: 9.04.2005

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


Allegro robi tak że po rejestracj musisz poczekać na list i aktywować konto, to jest bardzo bezpieczne, dzięki temu nie zarejestruje się nikt na wymyślonych danych. Lepiej używać sesji smile.gif. Co rozumiesz przez kodowanie użytkowników ? Hasła napewno musisz zahashować (md5 lub sh1).


--------------------
Go to the top of the page
+Quote Post
TomASS
post
Post #3





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


ja raczej zajmuje się programami dla biznesu, do których dostęp mają tylko wybrani użytkownicy zdefiniowania przez administratorów systemu.
Oto zabezpieczenia
1. kodowanie hasłeł algorytmem md5, w bazie przetrzymywane są właśnie jako zakodowane
2. do komunikacji protokół ssl
3. monitoring wszelki zdarzeń i zapytań w systemie. Każdy użytkownik identyfikowany jest z imienia i nazwiska, więc jak coś narozrabia to odrazu wiadomo kto smile.gif
4. monitoring adresów IP używanych przez danego użytkownika - w momencie gdy pojawi się nowy adres, wtedy następuje interwencja. Niektórzy użytkownicy mają zablokowany dostęp i mogą kożystać tylko z idenego, konkretnego komputera (IP)
5. ważną sprawą jest informować użytkowników, aby tworzyli odpowiednie hasła - np. min 6 znakowe w tym conajmniej jedna cyfra, litera, znak interpunkcyjny + małe i duże litery


--------------------
Go to the top of the page
+Quote Post
Master Miko
post
Post #4





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


Co do wypowiedzi TomASSa ttylko dodam (technicznie):

2. Choć nie każdy serwer ma SSL (w rozwiązaniach biznesowych napewno są) jest to idealne rozwiązanie smile.gif

4. Najlepiej zrobić opcje "korzystam tylko z jednego adresu IP" i wytłumaczenie juzerowi o co w tym chodzi. Bo pamiętajmy, że musi mieć to do wyboru - np. będzie chciał coś kupić, a nie będzie go w domu... wtedy będzie miał głupio...

Najlepiej wtedy ustawić, blokadę na 1 ip i w razie potrzeby kontakt z administratorem...

5. Można do tego użyć już walidacji przez php - np. w przypadku braku duży liter, małych i cyfr wyburacza juzerowi że ma za słabe hasło.

Co do sesji najlepiej robić je aby trwały maksymalnie 5 minut (lub mniej) - im więcej czasu trfania tym większe prawdopodobieństwo, że może się stać coś złego..

Kolejnym dobrym pomysłem (stosowanym np. w wielu bankach na stronach internetowych) jest automatyczne wylogowanie juzera po dwóch minutach nic nie robienia...


Co do kodowania plików php - jeśli jest to system działający w zakresie prywatnym (np. tylko dla jednej firmy) niepotrzebne jest kodowanie plików php.
Tak naprawdę kodowanie plików php może się tylko przydać przy sprzedawaniu systemów php.

Ten post edytował Master Miko 13.05.2006, 09:47:45


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





Grupa: Przyjaciele php.pl
Postów: 1 112
Pomógł: 20
Dołączył: 10.04.2005

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


ja też powołam się na allegro.pl, ale z innej beczki nieco. Warto pokusić się o dodatkową autoryzację dla strategiczych dla systemu czynności. (allegro -> edycja profilu). Nawet przy krótko trwających sesjach może się zdażyć, że user zaloguje sie po czym oddali się od komputera a na jego miejscu pojawi się "zły user".

pozdr.
Go to the top of the page
+Quote Post
Jarod
post
Post #6





Grupa: Zarejestrowani
Postów: 1 190
Pomógł: 27
Dołączył: 23.04.2005

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


Cytat(Master Miko @ 2006-05-13 08:45:12)
Kolejnym dobrym pomysłem (stosowanym np. w wielu bankach na stronach internetowych) jest automatyczne wylogowanie juzera po dwóch minutach nic nie robienia...

A jak coś takiego zrobić?


--------------------
”Godzina nauki w życiu nowoczesnego apostoła jest godziną modlitwy.”
(św. Josemaría Escrivá, Droga, 335)
Go to the top of the page
+Quote Post
Master Miko
post
Post #7





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


Np.
Używasz funkcji header (w php). Ustawiasz aby po 120 sekundach odsyłało Cię do strony logout.php (albo innej z logout)

Albo używasz tagu meta w ten sam sposób co header (jednak polecam header bo czasem meta się dziwnie zawiesza snitch.gif )


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





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


No headerem to chyba nie za bardzo zmusić przeglądarkę do wylogowania się.


--------------------
Go to the top of the page
+Quote Post
Master Miko
post
Post #9





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


Oczywiście że się da!

  1. <?php
  2.  
  3. header("Refresh: 120;url=logout.php"); 
  4.  
  5. // po 2 minutach odsyła do pliku logout.php gdzie odbywa się logout :)
  6.  
  7. ?>


Ten post edytował Master Miko 13.05.2006, 22:03:27


--------------------
Go to the top of the page
+Quote Post
TomASS
post
Post #10





Grupa: Zarejestrowani
Postów: 1 660
Pomógł: 13
Dołączył: 9.06.2004
Skąd: Wrocław i okolice

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


Masz rację że się da headerem przeładować stronę - nie wiedziałem o tym:impreza:


Też dobry sposób na zabezpieczenie smile.gif Tylko teraz jak dołożyć aby np. w trakcie pisania czegoś w tekstarea się nie wylogował, tylko po np. 2 minutach bezczynności?


--------------------
Go to the top of the page
+Quote Post
Master Miko
post
Post #11





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


Niestety.... php nie ma takiej kontroli. Ja bym dał okres oczekiwania 3 minuty (tak jest chyba w intelligo i nikt nie narzeka). Natomiast w javascript dałoby się coś takiego zrobić... ale go można zawsze wyłączyć...

(ogólnie ja np. wole zostać wylogowany i jeszcze raz wpisywać dane niż być narażony na atak person-by-comp :/)

Ostatecznie można zrobić "porcjowanie danych" np. pierwsza strona wpisujesz 1 dane. Druga strona 2 dane itp. Wtedy wszystjo jest rozłożone w czasie smile.gif

Ten post edytował Master Miko 13.05.2006, 22:54:23


--------------------
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 - 22:15