Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: bezpieczeństwo panelu admina
Forum PHP.pl > Forum > Przedszkole
Plikownik
Witam

Mam pytanie. Czy stosowanie takiej techniki w panelu admina jest groźne?:
  1. <?php
  2.  
  3. if($_SESSION['admin'] == 1)
  4. {
  5. //Zalogowany w panelu admina
  6. }
  7. else
  8. {
  9. //Niezalogowany w panelu admina
  10. }
  11.  
  12. ?>

odwiedzający stronę chyba nie może przekazać do sesji 'admin' parametru 1 ?
Master Miko
chyba nie... ale ogólnie nie polecam liczb... (takie jakieś złe przeczucie tongue.gif )
(ale chyba... dane są zapisaywane na serwerze... to chyba jest dobrze...)


polecam raczej coś w haszu np. sha1("haslojakies")
A co do sesji... to czemu nie. Tylko ja używając sesji wyłączam dodatkowo cookiesy... (tak dla bezpieczeństwa, choć nie wiem czy to coś daje smile.gif ), no i robię żeby trwały ok max 4 minut
devnul
Jesli używasz sesji to wyłączenie cookies nic nie daje, bo w ciastku przecchowywany jest tylko ID sesji, jeśli ciastka sa wyłączone to ID ląduje w linkach do wszelkich dokumentów.

Co do używania liczby jako informacji o tym czy user jest adminem czy nie to nie ma to żadnego znaczenia jeśli chodzi o bezpieczeństwo jeśli dane przechowywane sa w sesji - bo do niej user nie ma dostepu. Równie dobrze mogłyby to byc wartości booleanowskie lub stringi np "jestep_super_administratorem_serwisu" - jeśli taki zapis ułatwia pracę to czemu nie? W koncu użytkownik koncowy nie ma dostepu od źródeł skryptu więc nie może także zmienić takiej wartości.
Master Miko
Tfu! Źle napisałem. Chodziło mi, że wyłączam id w linkach, i umożliwiam tylko logowanie gdy ktoś ma włączone cookies.
devnul
a co to za różnica? Przecierz to nie zagraża w żaden sposób bezpieczeństwu skryptu :| Dla mnie bezsens. Niektórzy wyłączaja cookies po to zeby uniknąc "szpiegostwa" i są z góry skazani na niemozliwość kożystania z Twoich stron. Mechanizm sesji jest tak zbudowany ze z założenia dane w nich przechowywane sa względnie bezpieczne (bo trzeba miec dostęp do serwera żeby móc w nich grzebać), wię nie rozumiem tego posunięcia.
dr_bonzo
Wszystko zalezy na jakiej podstawie zapisujesz
  1. <?php
  2. $_SESSION['admin'] = 1
  3. ?>
-- czy po wpisaniu odpowiedniego hasla i loginu, czy np. po odczytaniu tej wartosci z ciastka (wiem ze idiotyczny przyklad i zupelnie niebezpieczny ale nic innego nie przyszlo mi do glowy).
Master Miko
Cytat(devnul @ 2006-04-22 17:15:52)
a co to za różnica? Przecierz to nie zagraża w żaden sposób bezpieczeństwu skryptu :| Dla mnie bezsens. Niektórzy wyłączaja cookies po to zeby uniknąc "szpiegostwa" i są z góry skazani na niemozliwość kożystania z Twoich stron. Mechanizm sesji jest tak zbudowany ze z założenia dane w nich przechowywane sa względnie bezpieczne (bo trzeba miec dostęp do serwera żeby móc w nich grzebać), wię nie rozumiem tego posunięcia.

Może zrobiłem małe niedopowiedzenie... wyłączyłem możliwość dodawania identyfikatora funkcji z pewnych względów... to też wyłączyłem możliwość logowania się bez cookies...
devnul
Cytat
Może zrobiłem małe niedopowiedzenie... wyłączyłem możliwość dodawania identyfikatora funkcji z pewnych względów... to też wyłączyłem możliwość logowania się bez cookies...


ale w czym Ci przeszkadzają cookies? Przecierz jeśli używasz sesji to nie musisz trzymać tam nic poza identyfikatorem sesji - na tym się opiera główna zasada działania sesji. Brak cookies powoduje włączenie mechanizmu zastępczego jakim jest dodawanie identyfikatora sesji do każdego odnośnika.

BTW. Czytając to co piszesz mam wrażenie ze nie do konća rozumiesz o czym piszesz
Master Miko
Bo wyłączyłem i tyle! BOŻE to tak trudne do zrozumienia?
devnul
Wiem że OT, ale pozwolę sobie odpowiedzieć:

otóż bardzo ciężko zrozumieć czemu wyłączyłeś tą opcję ponieważ nie zagraża ona w żaden sposób bezpieczeństwu serwisu a jedynie moze powodowac pewne komplikacje dal użytkownika końcowego - chyba że nie zależy ci na dobrym efekcie a jedynie na zastosowaniu sprawdzającym się tylko w Twoim własnym wypadku.
Master Miko
NIe, nie chodzi mi o bezpieczeństwo, a raczej o mój przypadek. Głównie dlatego, że php sam tworzy w <form> <inputy> zakończone znakiem /> - xhtmlowym. Niestety, nie piszę w xhtml, więc pojawia się problem zgodności... wtedy porpostu wyłączam linki, a co do cookies, przeczytałem to gdzieś i nawet nie pamiętam gdzie - ale to 100% nie ma wpływu na bezpieczeństwo...



EDIT:

Już wiem... przeczytałem to w manualu:

Cytat
To stop PHPSESSID from appearing in the url, try inserting these two lines just before session_start() --
ini_set("url_rewriter.tags","");
ini_set(?session.use_trans_sid?, false);


Nie wiem po co koleś to dodał... ale to przekopiowałem i dodawałem do skryptów...
devnul
Cytat
Nie wiem po co koleś to dodał... ale to przekopiowałem i dodawałem do skryptów...
- to jest conajmniej nierozsądne - to że jest jakaś możliwość, to nie znaczy ze trzeba z niej korzystać - a już napewno nie mając jakiegoś rozsądnego uzasadnienia. Pozatym nawet jakby parser php podminiał wszystkie znaczniki html na xhtml (czyli zakańczał "/>" w ten sposóB) to zgodnie ze specyfikacją w3 nie jest to błąd, więc nie ma obaw co do zgodności i można spokojnie zostawić takie ustawienia w spokoju.
Master Miko
W strict jest to błąd, jeżeli dasz doctype HTML, a masz input z xhtml /> wyrzuca błąd , że znak jest niedozwolony. To są przecież dwa różne standardy...
(sprawdzone w praktyce...)


A korzystam z rozwiązania... bo manual to manual i on Ci wszystko powie tongue.gif
devnul
Dobra - nie bede nikogo przekonywał do swoich racji. Każdy ma prawo do własnego indywidualnego zdania. Jak dla mnie EOT
Master Miko
hmmm...

http://validator.w3.org/check?uri=http%3A%...ype=Inline&ss=1
devnul
nie potrzebuje przykładu - wcześniej nikt nie pisał o strict dlatego też nie wdaje się w dalszą dyskusję, bo tu akurat masz rację, ale ok skoro chcesz - parser php nie podmieni znacznika <a href="test.php">test</a> na coś takiego <a href="test.php?PHPSESID=12341234123412341234123412341234" />test</a>, poprostu doda to:
?PHPSESID=12341234123412341234123412341234

do linkia na tym koniec! wniosek - dziwne twe obawy tongue.gif
Master Miko
Facet (lub pani tongue.gif)! Jak Ty czytasz!
Mówiłem o form i o stict! Jak odpowiadasz na czyjeś posty, to mógłbyś je przynajmniej raz przeczytać LOL.

Cytat
W strict jest to błąd, jeżeli dasz doctype HTML, a masz input z xhtml /> wyrzuca błąd , że znak jest niedozwolony. To są przecież dwa różne standardy...
(sprawdzone w praktyce...)


Cytat
NIe, nie chodzi mi o bezpieczeństwo, a raczej o mój przypadek. Głównie dlatego, że php sam tworzy w <form> <inputy> zakończone znakiem /> -



EOT
devnul
Jejku - teraz bedziesz dyskutował - napisałes to dopiero w jednym z ostatnich postów.
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.