Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Panel admina tylko dla siebie.
Forum PHP.pl > Forum > PHP
seba199696
Witam. Chcę zrobić panel tylko dla siebie, na jeden komputer i ip smile.gif

Wystarczy rozwiązanie po ip?

ODCZYTANE IP == 134.23.999.32

questionmark.gif
erix
Cytat
Wystarczy rozwiązanie po ip?

Nie.
seba199696
Co zastosować?
IceManSpy
Login + hasło, w sumie powinny wystarczyć + trzymanie informacji o zalogowaniu w sesji.

Oczywiście w każdym momencie pracy z panelem admina musisz sprawdzać, czy jesteś zalogowany.
ShadowD
Ip może Ci się zmienić, możesz być w sieci lokalnej i wtedy ip nie jest tylko Twoje.

Ps. Ip może być dodatkowym zabezpieczeniem do login/pass.
seba199696
Tylko że strona nie ma użytkowników smile.gif Bez sensu pisać specjalnie skrypt logowania.
erix
Podszyć się pod IP, to nie jest problem.

Możesz spróbować metody a'la klucze SSH w ciasteczku, ale wtedy bez SSL ani rusz.
Niktoś
Cytat
Witam. Chcę zrobić panel tylko dla siebie, na jeden komputer i ip


Tego zbytnio nie rozumiem,czy Panel ma być dostępny tylko z unikatowego komputera przez sieć,czy z dowolnego komputera ?
seba199696
tylko z unikatowego komputera
Niktoś
To da radę to ,zrobić, też będę kiedyś robił.Nie należy to do najłatwiejszych sposobów,zapisujesz całą konfigurację sprzętową,plus dziergasz nazwę swojego hosta + nazwę komputera w bazie danych.Za pomocą aplikacji zrobioną w aplecie java, bądź silverlight (nie znam lepszych klienckich programów) pobierasz dane konfiguracji sprzętowej osoby która odwiedza tą stronę(twój panel administracyjny i porównujesz z bazą danych jeśli się zgadza to chup siup użytkuje.Wątpię czy ktoś się przez to przebije.Aplikacje będą wymagały,zainstalowania wtyczk,ale to i tak dla Ciebie jest,więc jeśli ktoś sobie ,zainstaluje to i tak nie wejdzie bo konfiguracja sprzętowa nie będzie się zagdzać.
Trochę hardkorowe,ale w taki sposób microsoft sprawdzał oryginalność swoich produktów.

Trochę tych editów,ale późno już i plątam trochę.
seba199696
O człowieku smile.gif Dzięki
prowseed
Mozesz trzymac plik na dysku (.txt) i na stronie zrobic duzy przycisk, ktory bedzie tak jakby forma i od razu bedzie pobieral ten plik z danej (stalej) lokalizacji na Twoim komputerze i jezeli jego zawartosc, hash albo co tam chcesz jest taki sam jak wpis w bazie, to zapraszamy, zapraszamy smile.gif Ja wlasnie tak to chcialem kiedys rozwiazac, ale ostatecznie nic nie zrobilem konkretnego, to nawet nie wiem jak to sie sprawdza (na oko bezpieczne, pod warunkiem, ze nikt Ci na kompie nie smiga wink.gif ).

BTW:
bez sensu pisac specjalnie plik logowania (gotowcow w necie tysiace), ale aplecik na sprawdzanie sprzetu to spoczko? wink.gif

//EDIT
albo wpadlem na jeszcze fajniejszy pomysl. Wiesz jak dzialaja keygeny?
Wymysl sobie jakas funkcje matematyczna, nie musi byc skomplikowana, ale powinna opierac sie na duzych liczbach i byc zalezna od daty [albo od daty i godziny]. Pozniej ja sobie zmieszaj md5 albo sha1, dzieki czemu bedziesz dostawal unikalne klucze za kazdym razem i nie bedzie opcji na ich odkodowanie. Bedzie to cos w stylu "haslo na dzis". Nie potrzeba nawet do tego bazy. Przepisz sobie to liczydlo do javascript i na pulpicie zrob sobie plik index.html w ktorym od razu bedziesz mogl wygenerowac sobie klucz [w js] i wyslac go do docelowego skryptu. Ten sprawdzi, czy hash sie zgadza z tym co zostalo policzone na serwerze w momencie wykonania i gotowe.
Niktoś
Mi się ten pomysł podoba i będę go kiedyś robił na razie się u siebie koszyczkiem zajmuje.Ale na początku filtrujesz system jeśli inny niż twój to od razu odpada ,potem sprawdzasz konfigurację sprzętową i nazwę komputera.
Ma to taką zaletę ,że prawa administracyjne będziesz mógł nadawać od ręki -dopisując konfigurację do puli w bazie danych.
Ale to nie jest proste rozwiązanie.Bo już przeanalizowałem to troszeczkę,co bym musiał zrobić.
IceManSpy
Ja jestem ciekaw, dlaczego tak bardzo chcesz skomplikować sobie życie ustawiając taki poziom zabezpieczenia? Co tam chcesz ukrywać? biggrin.gif
Jak unikatowy komputer pójdzie z dymem, to będziesz musiał przepisać skrypt od nowa z nowymi danymi. Login, hasło, recaptcha + zabezpieczenie przed ilością logowań i to wystarczy.

A może token via SMS podczas logowania? Wtedy możesz logować się z każdego komputera, bo musisz wpisać kod z SMS, który masz przy sobie.
wizu
Cytat(erix @ 29.12.2011, 01:17:11 ) *
Podszyć się pod IP, to nie jest problem.

Możesz spróbować metody a'la klucze SSH w ciasteczku, ale wtedy bez SSL ani rusz.


erix, jesteś pewien, że podszyć się pod IP (ustawić wartość $_SERVER['REMOTE_ADDR'] na taką jaką chcemy) to nie problem?
Do tej pory uważałem, że jest to adres IP sprzętu, który łączy się naszym serwerem, pobierania bezpośrednio z pakietów TCP, i nie ma możliwości na dwustronna komunikację w taki sposób, alby wartość $_SERVER['REMOTE_ADDR'] była inna niż adres IP na który zostanie wysłana odpowiedź serwera. Możesz napisać coś więcej na ten temat?
erix
Cytat
Możesz napisać coś więcej na ten temat?

  • man-in-the middle
  • arp-spoofing
  • arp storm
  • i te dwa powyższe łączysz z podmienianiem nagłówków TCP
  • w przypadku fizycznej obecności w sieci wystarczy dopiąć komputer do switcha i ustawić ten sam adres IP, jeśli właściwy jest wyłączony
  • wifi ze słabymi zabezpieczeniami - atakowanie klucza sieci, to nie jest problem, zwłaszcza w przypadku WEP/WPA. Z WPA2 jest gorzej, ale to kwestia czasu. A te dwa pierwsze, to góra 10 minut łamania... Smartfonem. Reszta jak wyżej.
  • błędna konfiguracja serwera (zwłaszcza w przypadku komunikacji via FastCGI) lub bug w nim samym. Dobijasz się do konta na SSH, na którym działa aplikacja, jeśli całość jest oparta o CGI, to wystarczy pogmerać trochę w zmiennych środowiskowych i przy spawnowaniu procesu wbijasz dowolny IP. Ale w przypadku logicznego dostępu do serwera na tym poziomie można nawet sesje zatruwać, więc to jest trochę naciągane. tongue.gif


Tyle mi teraz przychodzi do głowy.
wizu
Do tych wszystkich ataków które podałeś, potrzebny jest albo dostęp do danego kompa, albo bycie w tej samej sieci. W takim wypadku łatwiej obejść wiele różnych zabezpieczań i oczywiście sama autoryzacja po IP nie zda egzaminu wink.gif
Jednak bez przegięć, do domowych zastosować w zupełności wystarczy. Jeśli ma się zewnętrzne IP w domu i dane do których chce się zabezpieczyć dostęp nie są super tajne, to taka autoryzacja po IP według mnie w zupełności wystarczy. Szkoda czasu wtedy na jakieś bardziej wymyślne rozwiązania.
erix
Cytat
Do tych wszystkich ataków które podałeś, potrzebny jest albo dostęp do danego kompa, albo bycie w tej samej sieci.

W przypadku man-in-the-middle mocno bym się zastanowił nad tymi słowami.
r4xz
nie lepiej localhost...? (jak dobrze zrozumiałem, to chodzi o rozw. na jeden konkretny PC tak?)
seba199696
Tak.
ervico
Na Ip?
IP może być zmienne lub stałe to zależy od sieci Panel Administratora zrób z jakąś bazą danych np: MySQL albo poprostu na sesjach np: jak się zarejestrujesz to przypisz sobie sesją id np 1 i później sprawdzaj czy dany użytkownik ma id 1 więc jest adminem biggrin.gif proste biggrin.gif jeśli zle wytłumaczyłem łap kod.
  1. <?PHP
  2. $logged = $_SESSION['logged'];
  3. $admin = $_SESSION['id'] = 1;
  4. if ($logged & $admin) {
  5. echo 'Treść widoczna dla admina';
  6. }
  7. else {
  8. echo 'Nie jesteś administratorem';
  9. }
  10. ?>

ShadowD
Zainstaluj sobie server, walnij tam jakiś 256 znakowy ciąg losowy z wszystkimi możliwymi znakami. Teraz przy wejściu na stronę pobieraj plik z localhost i sprawdzaj czy jest równy z tym w bazie. Plik na local host zrób czytelnym tylko dla ip Twojego servera, tak by inni go nie widzieli.

Kolejne rozwiązanie, łatwe i proste, ale czy potrzebne... Powiedz co chcesz ukryć, pomyślimy czy ma to sens.
Dragas
A może w .htaccess PHP_AUTH i blokada na cały folder i po sprawie. Tak najczęściej robie jeśli chce żebym tylko ja miał do tego dostęp, ewentualnie kilka innych osób.
erix
Bawiłeś się kiedyś Etherealem? tongue.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.