![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Witam, Piszę skrypt do autorskiego Panelu Admininistratora i chciałbym, aby po zalogowaniu była możliwość przejścia do niego. Zrobiłem już tak, aby po zalogowaniu administrator miał możliwość przejścia po przez link, ale coś nie działa. Linki wyświetla mi się www.moja-strona.pl/administrator/index.php ,a chciałbym, aby był www.moja-strona.pl/administrator/index.php?token=7dadca005ce29a64 . Takie rozwiązanie widziałem w PHP Fusion więc wiem, że jest to wykonalne, ale tak jak już pisałem efekt nie jest taki na jaki liczyłem. Proszę o pomoc!
Skrypt funkcji:
|
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
A do czego niby miałby być ten token?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
A do czego niby miałby być ten token? No więc tak. Token pobiera z bazy danych hasło zakodowane w md5, ale nie całe a tylko jego część. Każdy zarejestrowany posiada własny unikalny token, który jest tworzony na podstawie hasła użytkownika. Dzięki temu nie uprawniona osoba nie ma możliwość wejścia do panelu admina. |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 702 Pomógł: 65 Dołączył: 16.03.2009 Ostrzeżenie: (0%) ![]() ![]() |
jaki jest sens podawania tego w url a nie w sesji ?
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Dalej nie rozumiem do czego ma to służyć (IMG:style_emoticons/default/wink.gif)
Logowanie robisz, do sesji zapisujesz informacje czy zalogowany i o jego uprawnieniach - cała filozofia. |
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 778 Pomógł: 84 Dołączył: 29.07.2010 Skąd: Gliwice / Pławniowice Mistrz niezmordowanej klawiatury. Ostrzeżenie: (20%) ![]() ![]() |
|
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Chyba utrudniania sobie życia, bo nikomu innemu nie utrudnia to życia. ;p
Bajer? Nie wiem jaki to bajer. |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Ja proszę was o pomoc jak takie coś wykonać, a nie o wasze dywagacje.
|
|
|
![]()
Post
#9
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
header i robisz przekierowanie na stronę z dopisanym tokenem.
|
|
|
![]()
Post
#10
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Po waszych wypowiedziach zdecydowałem się na zrobienie tego na sesjach, ale mam pytanie czy jest sposób, aby przy dodawaniu admina była możliwość wybrania mu konkretnych uprawnień czyli np. mamy podane Newsy, Galeria, Panele, Ustawienia, a ja zaznaczę mu tylko uprawnienia do Newsy i Panele i tylko do tego będzie miał dostęp?
|
|
|
![]()
Post
#11
|
|
Grupa: Zarejestrowani Postów: 1 748 Pomógł: 388 Dołączył: 21.08.2009 Skąd: Gdynia Ostrzeżenie: (0%) ![]() ![]() |
no pewnie że możesz i to bardzo łatwo w bazie tam gdzie masz dane adminów dodasz też tabelę z uprawnieniami przy logowaniu pobierasz jego uprawnienia i wpisujesz do sesji i przy każdej operacji admina sprawdzasz czy posiada odpowiednie uprawnienia
|
|
|
![]()
Post
#12
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
A mogę liczyć na więcej informacji na ten temat?
|
|
|
![]()
Post
#13
|
|
Grupa: Zarejestrowani Postów: 275 Pomógł: 32 Dołączył: 21.03.2006 Skąd: Warszawa Ostrzeżenie: (20%) ![]() ![]() |
|
|
|
![]()
Post
#14
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
google -> PHP ACL
Ten post edytował Fifi209 16.06.2011, 23:26:33 |
|
|
![]()
Post
#15
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Dzięki. Ja planuję zrobić coś takiego, aby utworzyć w bazie danych tablę "admin" a w niej utworzyć (admin_id, admin_rights, admin_title, admin_link). W polu "admin_rights" byłoby wpisane np. NEWS. Wtedy w pliku panelu admina dotyczącym dodawania chciałem dodać:
Następnie chcę w tabeli użytkowników dodać pole "user_uprawnienia" i jeżeli przy danym koncie będzie wpisane w tej tabeli "NEWS" to admin będzie miał prawa do tworzenia newsów. Czy to jest dobre rozwiązanie? |
|
|
![]()
Post
#16
|
|
Grupa: Zarejestrowani Postów: 17 Pomógł: 0 Dołączył: 10.01.2011 Skąd: kierunek-->Południe Ostrzeżenie: (0%) ![]() ![]() |
ja stosowałbym powiązania numeryczne a nie literowe
|
|
|
![]()
Post
#17
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Zastosuj może podział na role pod kątem:
Tabela userów i jedno z pól: id Tabela ról: id, nazwa, ewentualnie jakieś konkretne dane o uprawnieniach Tabela łączaca: id_usera, id_roli Wybierasz id usera i sprawdzasz jakie ma uprawnienia (IMG:style_emoticons/default/smile.gif) Przykładowe uprawnienia/role? Login - ma prawo bądź nie sie logować - upierdliwemu userowi wyłaczamy i może sobie poskakać (IMG:style_emoticons/default/wink.gif) Konto ma - logować się nie może. Taki rodzaj bana (IMG:style_emoticons/default/smile.gif) Admin - wszystkie uprawnienia administracyjne News - ma prawo do edycji/dodawania/usuwania newsów Article - ma prawo do edycji/dodawania/usuwania artykułów Zauważ, że każde z nich jest rozłączne. Jeśli kouś nadasz Admin, ale nie dasz mu Login to jest kupa. Admin bez możliwości zalogowania (IMG:style_emoticons/default/wink.gif) Staraj się te role rozdzielać lub uszczegóławiać... Przykładowo możesz w tabeli łaczącej dać uprawnienia dodatkowe w stylu: ( id_usera, id_roli, rights ), gdzie rights będzie typu CRUD = Create, Read, Update, Delete czyli uprawnieniami do tworzenia, odczytu, aktualizacji i usuwania danych w zakresie danego uprawnienia, ale możesz też określić dziedzinę tych zasobów jako OGA = Owner, Group, All, czyli uprawnienia do kombinowania z zasobami tego typu swoimi, ludzi tej samej grupy, wszystkich. Co to daje? Przykład: User: jakiś, Role: Login () News ( O: ( C:1, R:1, U:1, D:1 ), G: ( C:1, R:1, U:0, D:0 ), A: ( C:1, R:1, U:0, D:0 ) ) Co to jest? Popatrz... Może robić wszystko ze swoimi newsami oraz czytać oraz tworzyć posty dla wszytkich swoich grupie lub dla wszystkich. Wystarczyło by jednak, gdyby zamienić mu ostatnią linijkę na A: ( C:0, R:1, U:0, D:0 ) mógłby tworzyć newsy jedynie dla siebie lub grup do których przynależy. A to nie zawsze oznacza, że user musi należeć do grupy Wszyscy lub Portal (IMG:style_emoticons/default/wink.gif) Ozywiście to tylko jedna z WIELU możliwych implementacji i niekoniecznie jedyna słuszna. Wiele bowiem zależy od architektury Twojego projektu. Może bowiem być tak, że dla KAŻDEJ grupy będziesz userowi określał różne uprawnienia i będa one predefiniowane z góry, jak choćby to, że dane forum jest dostępne tylko dla grupy X czy że jest widoczne dla wszystkich, ale prawo pisania/edycji ma tylko grupa Y. Pomysłów jest naprawdę wiele (IMG:style_emoticons/default/smile.gif) |
|
|
![]()
Post
#18
|
|
Grupa: Zarejestrowani Postów: 30 Pomógł: 0 Dołączył: 24.05.2011 Ostrzeżenie: (0%) ![]() ![]() |
Wielkie dzięki thek. Bardzo wyczerpująca temat odpowiedź. Teraz już wiem jak mogę rozwiązać swój problem.
Mam jeszcze pytanie odnośnie sesji. Co z bezpieczeństwem bo czytałem, że można przejąć sesję? |
|
|
![]()
Post
#19
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Mam jeszcze pytanie odnośnie sesji. Co z bezpieczeństwem bo czytałem, że można przejąć sesję? Zależy... jeżeli masz swój hosting (nie współdzielony) Zawsze możesz zmienić ścieżkę gdzie zapisywane są sesje, ew. napisać session handlera. Jak dla mnie podejście thek'a jest mniej właściwe od tego, które zademonstrował nospor http://nospor.pl/opcje-dwuwartosciowe-przechowywanie.html Ten post edytował Fifi209 17.06.2011, 13:15:09 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 4.10.2025 - 10:32 |