![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 25.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Witam.
Mam problem z logowaniem admina. W pliku login.php umiescilam kod:
ale chcialabym , aby pobieral zaszyfrowane haslo admina, ktore mam w bazie danych. Może cie mi pomóc...
Powód edycji: [Cysiaczek]: bbcode, pamiętaj w przyszłości
|
|
|
![]() |
![]()
Post
#2
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Czytaj. Btw takie coś to żadne zabezpieczenie. Wystarczy wpisać adres admin/panel_admin i już masz dostęp do panelu.
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 25.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Dlatego chciałam , aby haslo bylo pobierane zaszyfrowane... z bazy sql
|
|
|
![]()
Post
#4
|
|
![]() Grupa: Zarejestrowani Postów: 233 Pomógł: 27 Dołączył: 27.08.2007 Ostrzeżenie: (0%) ![]() ![]() |
Poczytaj o md5 i sha1, sesjach
Ten post edytował daros17 21.11.2010, 13:01:08 |
|
|
![]()
Post
#5
|
|
![]() Grupa: Zarejestrowani Postów: 1 182 Pomógł: 115 Dołączył: 4.03.2009 Skąd: Myszków Ostrzeżenie: (0%) ![]() ![]() |
Dobrze, ale nie w tym problem. I tak nikt nie odczyta wartości zmiennych i parametrów ze skryptu bez dostępu do kodu. Problem w tym, że przekierowujesz po prostu na stronę panelu, zamiast zrobić np. include i po stronie panelu sprawdzać, czy admin jest zalogowany, do czego stosuje się sesje.
I jeszcze jedno, haseł w bazie się nie szyfruje, a hashuje (jest to jednostronna operacja) ![]() |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 25.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Czy bez tej autoryzacji nie można zalogować admina...
|
|
|
![]()
Post
#7
|
|
![]() Grupa: Zarejestrowani Postów: 763 Pomógł: 117 Dołączył: 15.03.2010 Skąd: void Ostrzeżenie: (0%) ![]() ![]() |
To co ty robisz to tzw. "przekierowanie" po sprawdzeniu wpisanych wartości...
Logowanie wyróżnia się tym, że TYLKO zalogowani mają dostęp do tej treści. Jeśli chcesz zabezpieczyć panel_admin przed niepowołanymi gośćmi po prostu sprawdź na początku tego pliku, czy dana sesja istnieje. Jeśli nie to zastosuj header (przekierowanie) na stronę z możliwością zalogowania ![]() Nic trudnego. Wpisz w google: php session i jeden z trzech pierwszych linków powinien dostarczyć Ci wszystkich niezbędnych informacji. Pozdrawiam! -------------------- Pomogłem? Kliknij `Pomógł`. To nic nie kosztuje, a mnie usatysfakcjonuje! ;)
|
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 25.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
No mam sprawdzenie sesji...
ale nie wiem jak tu ustawić , że ma być zalogowany admin.... A w pliku login mam przekierowanie...
|
|
|
![]()
Post
#9
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Może spróbuj coś w ten deseń:
panel_admin.php:
-------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 25.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Wogóle nie przenosi mnie po zalogowaniu na strone panel admin..
Może nie w tym miejscu umieściłam kod sprawdzania... Możecie sprawdzić...
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 455 Pomógł: 69 Dołączył: 23.10.2004 Skąd: Oświęcim Ostrzeżenie: (0%) ![]() ![]() |
Włącz raportowanie błędów i powiedz czym sypie.
Na początku pliku dodaj session_start(). -------------------- |
|
|
![]()
Post
#12
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
1. Zobacz, czy na początku pliku nie masz jakichś znaków (nawet zwykłej spacji) i jeśli plik jest kodowany w UTF-8, to czy jest kodowany bez nagłówka BOM
2. Nie wiem po co to dałaś: Cytat header('Location: '.$_POST['URI']); bo: a.) To i tak nie zadziała, bo wyżej wyświetlasz dane b.) Jakby działało, to skrypt byłby podatny na Phishing 3. Po co te całe htmlspecialchars na dane jeśli: a.) hasło i tak jest kodowane md5, więc i tak bazie nie zagrozi b.) mysql_real_escape_string() wystarczy do zabezpieczenia przed SQL Injection c.) Jak usuniesz stamtąd htmlspecialchars(), to uzywaj go przy wyświetlaniu danych. Ten post edytował pyro 5.12.2010, 23:29:18 -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 715 Pomógł: 47 Dołączył: 5.12.2010 Ostrzeżenie: (0%) ![]() ![]() |
1. Zobacz, czy na początku pliku nie masz jakichś znaków (nawet zwykłej spacji) i jeśli plik jest kodowany w UTF-8, to czy jest kodowany bez nagłówka BOM 2. Nie wiem po co to dałaś: bo: a.) To i tak nie zadziała, bo wyżej wyświetlasz dane b.) Jakby działało, to skrypt byłby podatny na Phishing 3. Po co te całe htmlspecialchars na dane jeśli: a.) hasło i tak jest kodowane md5, więc i tak bazie nie zagrozi b.) mysql_real_escape_string() wystarczy do zabezpieczenia przed SQL Injection c.) Jak usuniesz stamtąd htmlspecialchars(), to uzywaj go przy wyświetlaniu danych. 1.Funkcja usuwająca spacje -trim ,jeden kłopot mniej 3.Funkcje typu htmlspecialchars,htmlentities - konwertują znaki specjalne na Encje-jak użyjesz polskiej literki to funkcja potraktuje ją jak znak specjalny i zamieni np. "ó" na ä -jednakże funkcje te chronią przed atakami XSS jak również addslashes i stripsslashes dodające lub ujmujące w określonych przypadkach ukośniki.Chronią one dokument php przed atakami XSS nie SQLInjection-do tego służy właśnie mysql_real_escape_string() która bezpośrednio zabezpiecza bazę danych.Najlepszym sposobem zabezpieczenia pól według mnie jest zastosowanie wyrażeń regularnych poprzez funkcje preg_match ,ja staram się używać całego dostępnego"arsenału" aby zabezpieczyć i dokument i bazę danych.Nic to nie zaszkodzi przecież ![]() |
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 25.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
header('Location: '.$_POST['URI']);
Dałam to po to , żeby logowanie odbywało się na tej stronie na której się znajduję... i to działa... A chciałam tez aby po wpisaniu logina i hasla admina przenosilo mnie na strone panel admin... Bo nie chce panela umieszczać w menu, tylko zeby byl dostepny jak sie zaloguje na admina... Ten post edytował aagaaz 6.12.2010, 11:55:43 |
|
|
![]()
Post
#15
|
|
![]() Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
1.Funkcja usuwająca spacje -trim ,jeden kłopot mniej 3.Funkcje typu htmlspecialchars,htmlentities - konwertują znaki specjalne na Encje-jak użyjesz polskiej literki to funkcja potraktuje ją jak znak specjalny i zamieni np. "ó" na ä -jednakże funkcje te chronią przed atakami XSS jak również addslashes i stripsslashes dodające lub ujmujące w określonych przypadkach ukośniki.Chronią one dokument php przed atakami XSS nie SQLInjection-do tego służy właśnie mysql_real_escape_string() która bezpośrednio zabezpiecza bazę danych.Najlepszym sposobem zabezpieczenia pól według mnie jest zastosowanie wyrażeń regularnych poprzez funkcje preg_match ,ja staram się używać całego dostępnego"arsenału" aby zabezpieczyć i dokument i bazę danych.Nic to nie zaszkodzi przecież ![]() Bardzo fajnie, że podałeś błędne definicje i błędne założenia, a do tego nie przeczytałeś tego co napisałem, a ponadto podałeś błędne wnioski. Więc powiedz mi, po co to napisałeś ![]() Cytat Dałam to po to , żeby logowanie odbywało się na tej stronie na której się znajduję... i to działa... Dokładnie to samo by się działo, jakbyś usunęła tę linijkę, ale jeśli Cię uszczęśliwia to możesz ją zostawić ![]() Zwróć uwagę na 1 punkt mojego poprzedniego postu (jeśli cokolwiek wyświetlasz przed podaniem header, to nie zostanie wykonany ten header), a ponadto na początku swojego pliku wklej: I zobacz wynik, szczególnie zwróć uwagę na błędy typu 'headers already sent...'. Jeśli to nie zadziała, to ściągnij wtyczkę podglądającą nagłówki HTTP, np. Tamper Data i zobacz czy nagłówek Location jest na pewno przesyłany. -------------------- ET LINGUA EIUS LOQUETUR IUDICIUM
|
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 25.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
Kodowanie jest ok...
Włączyłam raportowanie błędów i nic nie pokazuje ... Przerobiłam trochę i pokazuje mi błędy... i logowanie dziala na stronie na której aktualnie jestem .... Ale nie działa przekierowanie na panel admina... Nie pokazuja się błędy typu header...
Ten post edytował aagaaz 7.12.2010, 20:23:08 |
|
|
![]()
Post
#17
|
|
Grupa: Zarejestrowani Postów: 11 Pomógł: 3 Dołączył: 26.09.2010 Ostrzeżenie: (0%) ![]() ![]() |
To może napisz jakie błędy się pokazują.
A tak poza tym to: 1. Zakładam że session_start() jest w pliku db.php albo jakimś wcześniejszym, bo jeżeli go nie ma to całość nie ma sensu. 2. "else" z linijki 89 ( ten co ma przekierować ) wykona się tylko gdy użytkownik nie jest zalogowany ( patrz "if" z linijki 58 ) co miało by sens gdyby konto admina nie było wpisane do bazy danych. 3. "if" z linijki 91 jest moim zdaniem bez sensu ze względu na linijki 11, 12 oraz 24, 25, 28. $login będzie "prawie" zawsze zgodny z $_POST['login'] a $haslo z $_POST['haslo'] nigdy! Pomijając fakt że to wygląda tak jakby każdy był adminem O.O Poprawcie mnie jeżeli coś źle zrozumiałem/napisałem ![]() EDIT: Znalazłem trochę czasu więc takie coś: Zakładając że admin loguje się jak każdy normalny użytkownik i ma konto wpisane do bazy danych:
Ustawiasz login admina w zmiennej w linijce 49 i powinno działać. PS. Pozwoliłem sobie trochę .... wytrimować(?) kod ![]() Ten post edytował jesus61 8.12.2010, 10:49:16 |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 33 Pomógł: 0 Dołączył: 25.02.2010 Ostrzeżenie: (0%) ![]() ![]() |
WIELKIE DZIĘKI
![]() Działa ... Plusik dla CIEBIE |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 14.08.2025 - 05:24 |