System logowania

0

Hej. Chcę zrobić prosty system logowania do mojej aplikacji, z wykorzystaniem danych umieszczonych w bazie mysql. Zamiast bawić się w polecenia mysql pomyślałem że stworzę skrypt x.php, w którym będzie tylko i wyłącznie formularz, który po wysłaniu będzie zwracał wartość:
1 - jeśli użytkownik o podanych danych jest w bazie danych (będzie to sprawdzane za pośrednictwem php)
lub
0 - jeśli dane są błędne (również będzie to sprawdzane za pośrednictwem php)

A więc chciałbym napisać skrypt, który będzie wysyłał formularz, a następnie pobierał zawartość strony. Jeśli znalazłby na niej 0, to robiłby coś tam, a jeśli 1, to coś tam (tutaj bym wstawił już swoją instrukcję warunkową).

Czy mógłby ktoś mi wytłumaczyć, jak mogę wysłać formularz i pobrać zawartość strony? Z góry dziękuję.

P.S. Czy sposób ten jest w 100% bezpieczny?

1

HttpWebRequest() i HttpWebResponse(). Albo WebClient(), wszystkie z System.Net.

Ale ta metoda nie jest bezpieczna. Standardowo hasło (i wszystkie dane formularza) leci sobie czystym tekstem, więc się da podsłuchać, to raz. Dwa - jeżeli ktoś będzie podsłuchiwał transmisję i zobaczy, że jest wysyłane 1 gdy dane są prawidłowe, to będzie mógł dojść do tego, że stworzy sobie wirtualną stronę, która zawsze zwraca 1 i tylko tak nakombinuje by program zawsze odczytywał jego stronę, a nie Twoją. Obydwie metody może trochę zabezpieczyć przez szyfrowanie transmisji SSL albo TLS.

0

Ok, a jak można by było wykonać taki system logowania, w oparciu o bazę danych mysql bezpiecznie? Może jakimś innym sposobem?

0

Jak napisał kolega, to nie baza danych jest problemem, tylko sposób połączenia. SSL zapewnia ci szyfrowane połączenie, więc nawet jeśli ktoś podsłucha transmisję to nic mu to nie da.

0

Ok, serdecznie dziękuję. Swoją drogą mam jeszcze takie pytanie, napisałem program który wyświetla jeden, konkretny plik .pdf, który znajduje się na moim dysku. Ja natomiast chciałbym, aby wyświetlał on plik, który będzie skompilowany z tym programem, tak, że użytkownik nie będzie musiał mieć tego .pdf na dysku. Aby był on tak jakby wbudowany w aplikacje. Jak to zrobić?

1

dodać plik do resource (zasoby) i zaznaczyć we właściwościach żeby się dołączał do programu wynikowego
następnie w programie trzebaby mieć jakiś komponent (kontrolkę), który umie wyświetlić pdf - w sumie nie znam, poszukaj na codeproject, codeplex etc.

0

Słuchajcie a jak działa authentication token? Bo słyszałem że jest to dobre zabezpieczenie w tego rodzaju systemach logowania.

0

Masz na myśli token sprzętowy? Czyli taki ustrojstwo które po podaniu pin'u generuje ci jakiś chwilowy kod. Zamiast sprzętowego tokenu może być w formie aplikacji.

Generalnie to trochę mieszasz pojęcia.

Jest kilka kwestii, które wydają się podobne, ale są czym innym:

  1. autentykacja (uwierzytelnianie)
  2. autoryzacja
  3. bezpieczne połączenie
  4. szyfrowanie, funkcje skrótu

Autentykacja to chodzi o weryfikację tożsamości użytkownika (czy innego aktora w procesie). Chodzi o takie rozwiązania, które w możliwie najpewniejszy sposób pozwolą nam jednoznacznie potwierdzić tożsamość.
Autoryzacja, następuje po autentykacji i informuje do jakich zasobów dana tożsamość ma uprawnienia.
A na dokładkę mamy jeszcze SSL (https). Ta technologia odpowiada za bezpieczną transmisję danych. Autentykacja czy autoryzacja w żaden sposób nie zapewnia bezpieczeństwa komunikacji, ich cel jest zupełnie inny.
A żeby było jeszcze trudniej masz szyfrowanie. Tu chodzi o zabezpieczenie danych. Szyfrowanie używane jest podczas bezpiecznego przesyłania danych, ale samo w sobie nie ma żadnego związku z przesyłem danych.

W twoim przypadku chcesz stworzyć skrypt który będzie autentykował użytkownika. Komunikacja z tym skryptem, aby była bezpieczna, musi być przeprowadzona z wykorzystaniem SSL.
Najprostsza autentykacja to login+hasło.

Poza tym czegoś nie rozumiem, piszesz że logowanie na podstawie danych w bazie mySql, później że nie chcesz "bawić się w polecenia mysql", ale twój skrypt i tak musi połączyć się z bazą i sprawdzić/pobrać odpowiednie dane. Więc słowem jakiś dziwny masz pomysł, ale co nie jest zabronione... więc walcz.

1 użytkowników online, w tym zalogowanych: 0, gości: 1