Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: wykorzystanie formularzy do zarządzania stroną
Forum PHP.pl > Forum > PHP
hao
Chciałbym zasięgnąć opini na temat bezpieczeństwa i funkcjonalności takiego systemu, może ktoś mi poda argumenty świadczące na niekorzyść - tak więc zaczynamy:

Otóż tworząc system postanowiłem zrobić coś nowego i wszystkie linki wymagające generowania urla ze zmiennymi zrobiłem przy pomocy input=submit.
Tak więc pokażę na przykładzie aby było jasne:

1. Klient się loguje (formularz)
2. Po zalogowaniu pokazuje mu się panel administracyjny, ale kolejne linki nie jako index.php?id=xxx&pg=konfiguracja&.... tylko jako kolejny submit.

Jako, że url w pasku adresu wymaga, dajmy na to, przekazania loginu i hasła (wiem, ze tak się nie robi, to tylko przykład), to aby submit przekazał hasło wpisuję:
<form method=POST action=index.php>
<input type=hidden value=$login name=login>
<input type=hidden value=$login name=login>
<input type=submit value=1 name=konfiguracja>
<input type=submit value=1 name=wpisuj_news>
<form>


I taki wpis zastępuje index.php?login=xxx&pass=xxx&pg=konfiguracja i index.php?login=xxx&pass=xxx&pg=dodaj_news

W częście kodu natiomiast jest taki fragment:

  1. <?php
  2.  
  3. if(isset($konfiguracja)):
  4.    { tutaj modół konfiguracji strony }
  5. elseif(isset($wpisuj_news)):
  6.    { tutaj modół wpisywania tekstów }
  7. else:
  8.    { powitanie }
  9. endif;
  10. ?>


W każdym z modółów może również być nieskończona ilość takich samych przekierowań, za każdym razem przesyłając przez formularz do pliku index.php potrzebne dane, aby po kolejnym otwarciu strony przez formularz (action=index.php) interpreter przeszedł do odpowiedniej części kodu.
Inaczej mówiąc, za każdym odświeżeniem strony przez formularz muszą zostać przesłane wszystkie do tej pory wpisane dane.
Tak więc: po zalogowaniu się, przyciski w panelu administracyjnym muszą zawierać ukryte hasło, login i mieć ustawiony przycisk "Loguj". Kiedy wejdziemy np. do menu konfiguracja, to wszystkie podmenu konfoguracji muszą mieć przekazane przez pole hidden: login, hasło, ustawiony przycisk Login i ustawiony przycisk Konfuguracja. Itd..


Tak więc dzięki takiemu rozwiązaniu powstaje system bez konieczności użycia paska adresów do przekazywania danych, gdyż wszystkie zmienne są przekazywane w głąb przez pole 'hidden'. Wydaje mi się, że to bardzo ułatwia stworzenie dowolnie dużego systemu nawet w jednym pliku (pomijając potocznie przyjęte ograniczenia objętości dla plików internetowych).

Co o takim systemie myślicie?

Edit: chodzi mi oczywiście o wykorzystanie tego do przekazywania zmiennych, których osoby postronne nie powinny znać
pillot
Nie wydaje mi się, żeby przesyłanie jakichkolwiek danych użytkownika/administratora (login, hasła itp.) w ukrytych inputach było bezpieczne. jeśli już, to można hasło szyfrować (md5, sha1)(http://forum.php.pl/index.php?showtopic=23709) i dopiero upychać w hidden.
Bora
a sesje?
rogrog
Cytat(pillot @ 2004-12-12 21:19:58)
to można hasło szyfrować (md5, sha1)

po pierwsze to jest hashowanie a nie szyfrowanie
po drugie nie stanowi to żadnego zabezpieczenia, bo włamywaczowi wystarczy użycie hasha do wejścia do systemu
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.