ForumCała strona

Nawigacja

Aktualnie online

Gości online: 6

Użytkowników online: 0

Łącznie użytkowników: 25,393
Najnowszy użytkownik: Assassin

Logowanie

Nazwa użytkownika

Hasło



Zarejestruj się

Odzyskaj hasło

Shoutbox

Musisz zalogować się, aby móc dodać wiadomość.

JazOOn
06.12.2024 23:45:46
Amen

Zbigniew@
17.11.2024 11:33:24
Nie ten grzeszy kto pije, ale ten, kto się nie upije.

JazOOn
16.11.2024 20:46:18
tja

Zbigniew@
15.11.2024 18:58:17
Kto pije, ten nie bije.

JazOOn
31.10.2024 20:49:47
Kto pije?

Pobierz nową wersję
Pobierz podręcznik
Zobacz inne oficjalne Supporty
Statystyki supportu
PHP-Fuson PL na Facebooku

RSS

Polecamy hosting SferaHost.pl

Zobacz temat

 Drukuj temat
Zapomniane hasło za pomocą nazwy użytkownika
piotrek199214
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:
images40.fotosik.pl/252/a0ab026df14a5323med.jpg images41.fotosik.pl/252/1a2ecb00d1c71a9emed.jpg


Może komuś się przyda.

Pozdrawiam
piotrek199214 dodał/a następującą plik:
v7_lostpassword_nick_v1_1.rar [3.47kB / 343 Pobrane]

Edytowane przez piotrek199214 dnia 04.02.2010 22:48:08
Pomogłem Ci? Wystarczy podziękować i oznaczyć post jako pomocny pomogl[1]_1.png
Tanie tworzenie wtyczek, masz problem napisz.
 
www.piocom.eu
Wścibski Gość
Dodany dnia 23.12.2024 12:37:34
Pan Kontekstualny

Postów: n^x
Data rejestracji: Zawsze

Polecamy hosting SferaHost.pl
IP: localhost  
phm
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ł Smile
pajacyk.pl - kliknij w pajacyka Smile
 
piotrek199214
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 pomogl[1]_1.png
Tanie tworzenie wtyczek, masz problem napisz.
 
www.piocom.eu
phm
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 Smile 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ł Smile
pajacyk.pl - kliknij w pajacyka Smile
 
piotrek199214
Według poprzedniego stanu pliku ewidentnie nic nie było robione. Teraz dodałem
Pobierz kod źródłowy  Rozwiń Kod źródłowy

Powinno pomóc ale twoje fachowe oko niech oceni.

Pozdrawiam
Pomogłem Ci? Wystarczy podziękować i oznaczyć post jako pomocny pomogl[1]_1.png
Tanie tworzenie wtyczek, masz problem napisz.
 
www.piocom.eu
phm
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:
Pobierz kod źródłowy  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ł Smile
pajacyk.pl - kliknij w pajacyka Smile
 
piotrek199214
To raczej nie przeszło by ponieważ jeżeli nie będą zgadzały się dane to wywali do strony głównej:
Pobierz kod źródłowy  Rozwiń Kod źródłowy


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 pomogl[1]_1.png
Tanie tworzenie wtyczek, masz problem napisz.
 
www.piocom.eu
phm
W sumie masz racje, z założenia FUSION_QUERY filtrowanie zapewnia. Jednak dodatkowe filtrowanie danych jeszcze nigdy nikomu nie zaszkodziło Wink. 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 Wink.

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 Wink 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 Wink
jeśli pomogłem - kliknij pomógł Smile
pajacyk.pl - kliknij w pajacyka Smile
 
Przejdź do forum:
Created by Arox Copyright (C) 2004
Copyright (C) 2004 - 2018 Ekipa PHP-Fusion.pl