Zobacz temat
Zapomniane hasło za pomocą nazwy użytkownika
|
|
piotrek199214 |
Dodany dnia 04.02.2010 19:30:49
|
Bywalec Postów: 977 Pomógł: 168 v7.01.05 Data rejestracji: 17.12.2007 21:05 |
Aktualizacja 04.02.2010r. godz. 22:49 Wrzucam modyfikację lostpassword.php, która przypomina hasło użytkownika, a raczej jego zmianę na adres email po przez jeden z dostępnych opcji przywróceń: - podanie adresu email (domyślne przez PF) - podanie nazwy użytkownika (dodane) Instalacja: 1. Pobieramy załącznik 2. Wypakowujemy 3. Wrzucamy do głównego katalogu dwa pliki: - lostpassword.php - lostpassword_nick.php Foto: Może komuś się przyda. Pozdrawiam
piotrek199214 dodał/a następującą plik:
Edytowane przez piotrek199214 dnia 04.02.2010 22:48:08 Pomogłem Ci? Wystarczy podziękować i oznaczyć post jako pomocny Tanie tworzenie wtyczek, masz problem napisz. |
|
|
Wścibski Gość |
Dodany dnia 23.12.2024 12:37:34
|
Pan Kontekstualny Postów: n^x Data rejestracji: Zawsze |
|
IP: localhost | |
phm |
Dodany dnia 04.02.2010 22:34:59
|
Przedszkolak Postów: 16 Pomógł: 2 Data rejestracji: 04.02.2010 21:28 |
Mod ciekawy, ale takie pytanko, po szybkim przejrzeniu Twojego kodu. Robisz coś ze zmienną $nick, którą wrzucasz do zapytania SQL, czy zakładasz, że nikt w SQL Injection bawić się nie będzie? jeśli pomogłem - kliknij pomógł
pajacyk.pl - kliknij w pajacyka |
|
|
piotrek199214 |
Dodany dnia 04.02.2010 22:39:39
|
Bywalec Postów: 977 Pomógł: 168 v7.01.05 Data rejestracji: 17.12.2007 21:05 |
Nic nie jest robione, zwraca jako $_POST. Wiadomość doklejona: Można zastosować stripinput Edytowane przez piotrek199214 dnia 04.02.2010 22:43:18 Pomogłem Ci? Wystarczy podziękować i oznaczyć post jako pomocny Tanie tworzenie wtyczek, masz problem napisz. |
|
|
phm |
Dodany dnia 04.02.2010 22:49:26
|
Przedszkolak Postów: 16 Pomógł: 2 Data rejestracji: 04.02.2010 21:28 |
Chociaż nie mam obecnie możliwości sprawdzenia Twojego kodu (i moja opinia opiera się jedynie na przejrzeniu go), oraz pomijając fakt, ze nie spałem dwie doby (wiec mogłem czegoś nie zauważyć), to twierdzę, że wgranie Twojego skryptu na jakikolwiek serwer byłoby nierozsądne. Twój skrypt pobiera najpierw wprowadzany przez użytkownika login, i zapisuje go do zmiennej $nick. Następnie bez jakiegokolwiek filtrowania tej zmiennej wysyłasz ja do zapytania SQL. Jest to tak podstawowa podatność SQL Injection, że aż nie wierzę, że ją widzę w Twoim kodzie Dlatego z niedowierzaniem pytam jeszcze raz: Czy naprawdę nie robisz nic ze zmiennymi, które przesyłasz do zapytania SQL? Przecież one wymagają sprawdzenia, zanim "dołączą" do zapytania. jeśli pomogłem - kliknij pomógł
pajacyk.pl - kliknij w pajacyka |
|
|
piotrek199214 |
Dodany dnia 04.02.2010 22:52:45
|
Bywalec Postów: 977 Pomógł: 168 v7.01.05 Data rejestracji: 17.12.2007 21:05 |
Według poprzedniego stanu pliku ewidentnie nic nie było robione. Teraz dodałem Powinno pomóc ale twoje fachowe oko niech oceni. Pozdrawiam Pomogłem Ci? Wystarczy podziękować i oznaczyć post jako pomocny Tanie tworzenie wtyczek, masz problem napisz. |
|
|
phm |
Dodany dnia 04.02.2010 23:00:23
|
Przedszkolak Postów: 16 Pomógł: 2 Data rejestracji: 04.02.2010 21:28 |
Ja ogólnie dla bezpieczeństwa wewnątrz dbquery() [czyli odpowiednia mysql_query()], tam, gdzie występuje jakakolwiek zmienna $nick, $_GET['account'] itd, "ubrałbym" ją w mysql_real_escape_string(), czyli coś w rodzaju: Rozwiń Kod źródłowy PHP btw, mam nadzieję, że to "fachowe oko" było ironią ;p, bo do fachowca mi jeszcze daleko ;) Edytowane przez phm dnia 04.02.2010 23:01:33 jeśli pomogłem - kliknij pomógł
pajacyk.pl - kliknij w pajacyka |
|
|
piotrek199214 |
Dodany dnia 04.02.2010 23:07:01
|
Bywalec Postów: 977 Pomógł: 168 v7.01.05 Data rejestracji: 17.12.2007 21:05 |
To raczej nie przeszło by ponieważ jeżeli nie będą zgadzały się dane to wywali do strony głównej: Podany kod przez ciebie jest domyślnie ubrany tak przez programistów, ja nim nie jestem, lecz jeżeli oni tak to zrobili to nie powinno być tego typu wstrzyknięć. Pozdrawiam Edytowane przez piotrek199214 dnia 04.02.2010 23:08:00 Pomogłem Ci? Wystarczy podziękować i oznaczyć post jako pomocny Tanie tworzenie wtyczek, masz problem napisz. |
|
|
phm |
Dodany dnia 04.02.2010 23:27:42
|
Przedszkolak Postów: 16 Pomógł: 2 Data rejestracji: 04.02.2010 21:28 |
W sumie masz racje, z założenia FUSION_QUERY filtrowanie zapewnia. Jednak dodatkowe filtrowanie danych jeszcze nigdy nikomu nie zaszkodziło . Taka trochę offtopowa informacja, właściwie prośba: nauczcie się pisać tak, żeby nie polegać na zewnętrznych zabezpieczeniach silnika cms'a. To naprawdę istotne, zwłaszcza, w takich malutkich, jednoosobowych skryptach. Zwłaszcza, że naprawdę rzadko zdarza się, żeby takie skrypty zadowoliły wszystkich w 100%. Zawsze znajdzie się ktoś, kto będzie chciał wprowadzić tutaj niewielkie zmiany. Wystarczy, że zadebuguje Twojego if'a i później nawet zapomni (albo stwierdzi, że nie ma potrzeby) odkomentować tj jakże istotnej linijki. Wiadomo co się stanie dalej. Zresztą nie każdy zna domyślne funkcję danego cms'a. Ja jeszcze nie bawiłem się w zagłębiania tajników kodu żadnego z fusionów (ani 6, ani 7), choć nie ukrywam, kiedyś będzie trzeba poświecić na to pare nocek . Teraz można zapytać, czy nie filtrowałeś danych świadomie (ze względu na FUSION_QUERY), czy po prostu z nieuwagi. Jeśli to pierwsze, to czy rzeczywiście wiesz, jak FUSION_QUERY działa. Bo, to, że filtruje dane, to informacja szczerze mówiąc mało przydatne, ważne jest jak filtruje. Bo może to odbywać się na takiej zasadzie, że ze zmiennej będzie usuwane wszystko co niebezpieczne, a cała reszta sprawdzana w bazie, przykładowo: root[jakieś-zapytanie-sql-in]. Wtedy przefiltrowane [czyt. wyrzucone] zostanie całe niebezpieczne zapytanie, funkcja sprawdzi, czy użytkownik root istnieje w bazie. Skoro istnieje, warunek (if) puści kod dalej. Do kodu SQL dołączona zostanie wartość niezmienionej zmiennej (i nieprzefiltrowanej) i znowu mamy nieciekawa sytuację. Oczywiście nie odpowiadaj na te moje pytania - to tylko taki teoretyczny wywód A ja chyba rzeczywiście pójdę spać - bo przyznaję szczerze, że przy analizie tego kodu FUSION_QUERY mi umknęło. Widać, po 48h pracy człowiek jednak nie umie się porządnie skupić nawet na prostych czynnościach. Pozdrawiam jeśli pomogłem - kliknij pomógł
pajacyk.pl - kliknij w pajacyka |
|
Przejdź do forum: |