Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Kilka pytań odnośnie obsługi MySQLa
Forum PHP.pl > Forum > Przedszkole
alchie
Po przerobieniu kursu obsługi MySQLa przez php nadal nie rozumiem kilku rzeczy... Mianowicie:
  • Gdzies spotkalem sie z opinia, ze hasel nie powinno sie umieszczac nawet w czesci wykonywanej po stronie serwera w pliku .php, bo moze to byc przeczytane przez skrypt z zewnatrz. Ale w takim razie jaki sens ma przechowywanie informacji w bazie danych, skoro w pliku musi byc umieszczone haslo dostepu do niej?
  • aby pobrac informacje z bazy danych trzeba sie z nia polaczyc, a po zakonczeniu pobierania ich trzeba polaczenie przerwac, tak? Ale jesli korzystamy z dynamicznie generowanej strony, to czy musimy laczyc sie za kazdym odswierzeniem strony? Toc to strasznie spowolni dzialanie serwera... Z drugiej strony przeciez nie zostawie bazy otwartej, bo domyslam sie, ze bedzie to wrecz zaproszenie dla pseudohakerow, chcacych cokolwiek zniszczyc.
  • Czy kazdorazowe pobieranie informacji z bazy danych musi sie odbywac w formie wyszukiwania (select costam from costam where costam)? Slyszalem, ze to mocno obciaza baze i moze sie ona nie wyrobic...
  • Czy zamiast
    1. $zapytanie="SELECT haslo
    2. FROM users WHERE login=$_POST[login]";
    3. $haslo=mysql_query(zapytanie);
    moge dac:
    1. $haslo=mysql_query("SELECT haslo
    2. FROM users WHERE login=$_POST[login]");
    ?
slash.
Cytat
Gdzies spotkalem sie z opinia, ze hasel nie powinno sie umieszczac nawet w czesci wykonywanej po stronie serwera w pliku .php, bo moze to byc przeczytane przez skrypt z zewnatrz. Ale w takim razie jaki sens ma przechowywanie informacji w bazie danych, skoro w pliku musi byc umieszczone haslo dostepu do niej?

Niestety nie wiem co mial na mysli ktos kto to pisal, niemniej jednak jestem zdania ze nie powinno sie umieszczac hasle w czystej postaci nigdzie, nie wazne czy jest to plik czy baza danych - wystarczy prosta funkcja md5(), ktora juz znacznie utrudnia odgadniecie hasla, bowiem nawet znajomosc hash'u md5 od hasla nie przynosci znacznych ulatwien wzgledem odgadniecia hasla. Co do hasel do bazy danych powinny byc umieszczane poza skryptami php, a w ostatecznej postaci tylko w plikach php (lub innych interpretowanych przez php) i to w katarogu powyzjej katalogu publicznego www - napewno nie powinny byc w plikach txt czy inc (bo te zazwyczja nie sa interpretowane tylko wyswietlane )

Cytat
aby pobrac informacje z bazy danych trzeba sie z nia polaczyc, a po zakonczeniu pobierania ich trzeba polaczenie przerwac, tak? Ale jesli korzystamy z dynamicznie generowanej strony, to czy musimy laczyc sie za kazdym odswierzeniem strony? Toc to strasznie spowolni dzialanie serwera... Z drugiej strony przeciez nie zostawie bazy otwartej, bo domyslam sie, ze bedzie to wrecz zaproszenie dla pseudohakerow, chcacych cokolwiek zniszczyc.

Strony www sa bezstanowe - czyli pomiedzy jednym wywolaniem a drugim nie ma praktycznie powiazania (teoretycznie) - w przypadku polaczen zwyklych jesli ich samemu nie zamkniesz zrobi to za ciebie php, troche inaczej jest z polaczeniami stalymi - tymi zarzadza php, ale aby nawet do niego sie dostac potrzebujesz znac haslo i login zeby sie polaczy.

Cytat
Czy kazdorazowe pobieranie informacji z bazy danych musi sie odbywac w formie wyszukiwania (select costam from costam where costam)? Slyszalem, ze to mocno obciaza baze i moze sie ona nie wyrobic...

A znasz jakies inne sposoby pobierania danych z bazy danych questionmark.gif Co do szybkosci pobierania danych duzo zalezy od rodzaju zapytania i jego optymalizacji.

I ostatnie - co do niego - ani jedno ani drugie nie jest poprawne, oba sa narazone na sql injection, a do tego wywolanie zwroci blad ze niezdefiniowana stala login - index tablicy assocjacyjnej jest podawany w ' lub ". Co do twoich watpliwosci poczytaj na temat szybkosci wywolan w ' i " jak rowniez na temat ich bezpieczenstwa i sposobu interpretacji przez php.

Na koniec powiem tak - duzo slyszales ale nie wiele na temat, proponuje popytac / poczytac wiecej na temat tego co slyszales.
bełdzio
od końca smile.gif

1. tak możesz
2. select to nie wyszukaj tylko właśnie pobierze smile.gif
3. połączenie z bazą zamyka się po wykonaniu skryptu, a co spowolniania to możesz wyniki cacheować smile.gif
4. hasło może zostać odczytane jak padnie CI parser php i pokazane zostanie źródło
alchie
Cytat
duzo slyszales ale nie wiele na temat

Czesc wyczytalem na tym forum, reszte uslyszalem od mojego nauczyciela informatyki w szkole (nie musicie komentowac dry.gif )...

No wiec tak:

Apropo hasel, nie bede sie na razie bawic tym md5(), skoro istnieja takie narzedzia. W kazdym razie chyba taki skrypt powinien wystarczyc, jesli nie mam do czynienia ze zbyt rozgarnietymi hakerami (tzn moi koledzy ze szkoly nie wiele umieja):

dla pliku:
Cytat
<? to_jest_haslo ?>

kod:
  1. <?php
  2. $plik=fopen("../haslo.php","r");
  3. $linia_z_haslem=fgets($plik, 99);
  4. ereg("<? (.*) ?>", $linia_z_haslem, $haslo);


Co do drugiego pytania... gdzie tu odpowiedz? tongue.gif
Guest
MD5 jest algorytmem jednokierunkowym, czyli nie da sie (tak jak tam napisali) odkodowac hasla, bo czesc informacji w procesie kodowania jest tracona. Nie wierzysz - sprobuj. Jedyna metoda na odgadniecie hasla jest metoda 'BRUTE FORCE' czyli sprawdzanie wszyskich mozliwych kombinacji znakow uzytych do wykoania znacznika.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.