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 ![]() 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 12.05.2025 00:47:27
|
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? |
|
|
piotrek199214 |
Dodany dnia 04.02.2010 22:39:39
|
![]() Bywalec ![]() Postów: 977 Pomógł: 168 ![]() 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 ![]() |
|
|
piotrek199214 |
Dodany dnia 04.02.2010 22:52:45
|
![]() Bywalec ![]() Postów: 977 Pomógł: 168 ![]() 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:![]() 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 |
|
|
piotrek199214 |
Dodany dnia 04.02.2010 23:07:01
|
![]() Bywalec ![]() Postów: 977 Pomógł: 168 ![]() 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 ![]() 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 ![]() Pozdrawiam ![]() |
|
Przejdź do forum: |