Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc
Comunitatea PHP Romania
 

securitatea paginii
Vezi mesajul original

 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Subiectul anterior :: Subiectul următor  
Autor Mesaj
beginner18



Data înscrierii: 30/Aug/2004
Mesaje: 757
Locație: Bucuresti

Trimis: Joi Sep 30, 2004 11:11 am    Titlul subiectului: securitatea paginii  

Am un forum de logare, numit index.php, iar dupa introducerea datelor, fisierul login,php prelucreaza datele. daca se logheaza ca admnin, se duce in fisierul admin.php. insa, de exemplu, cineva daca pune in adress bar adresa_mea/admin.php, poate sa se logheze ca administrator fara sa introduca date in forum
Cum faca sa nu poata intra asa?
Un raspuns ar fi, sa cerceteze daca utilizatorul a apasa pe butonul de submit la forum, iar daca nu sa-l trimita sa completeze. problema e ca nu pot face aceasta verificare in fisierul admin.php, ci trebuie in login.php, insa nuj cum.
Se poate si altfel?
Sus  
arond



Data înscrierii: 11/Mar/2004
Mesaje: 580
Locație: 127.0.0.1

Trimis: Joi Sep 30, 2004 11:31 am    Titlul subiectului:  

Site-ul de web trebuie sa memoreze daca exista un "admin" logat.

Treaba asta se poate face:

1. Folosind session cookies (sunt cookie-uri care "traiesc" numai pe durata pe care fereastra de browser respectiva e deschisa), pentru referinte uita-te in documentatie la: setcookie() si $_COOKIE.

2. Folosind sesiuni, sesiunile fiind o metoda prin care anumite date pot fi memorate pe durata unei sesiuni de browsing, pentru referinte uita-te in documentatie la session_start() si $_SESSION.

Un tutorial poti gasi la http://www.free2code.net/plugins/articles/read.php?id=99

Numa' bune.
Sus  
mihnea sim



Data înscrierii: 20/Aug/2004
Mesaje: 149
Locație: Alexandria

Trimis: Joi Sep 30, 2004 5:56 pm    Titlul subiectului:  

Se poate si mai simplu:
faci un fisier de genul:

Cod:
<?

if (!$_POST['submit'] || !$_SESSION['admin']) // adica testezi daca a parcurs formularul sau daca nu cumva e deja logat ca admin
// iar daca nu e il scoti:
die('Acces interzis!');
else if($_POST['submit']){
//actiunea de logare.. prin care $_SESSION['admin']
//ia o valoare
}

//pagina de admin prin care nu se poate ajunge
// in mod fraudulos
/?>
Sus  
johnutz



Data înscrierii: 20/Iul/2004
Mesaje: 956
Locație: Între scaun și tastatură

Trimis: Sâm Oct 02, 2004 11:10 pm    Titlul subiectului:  

mihnea sim a scris:
else if($_POST['submit']){
//actiunea de logare.. prin care $_SESSION['admin']
//ia o valoare
} mihnea sim, incearca asta:
Cod: <form action="http://adresa.lui/beginner18/admin.php" method="post">
<input type="hidden" value="true" name="submit">
<input type="submit" value="intra fara parola in admin.php" name="submit2">
</form>

beginner18, iti recomand asta:
in pagina de login (login.php) pui form-ul asta: Cod:   <form name="form1" method="post" action="admin.php">
    parola:
    <input name="parola" type="password" id="parola">
    <input type="submit" name="Submit" value="Submit">
  </form> Poti sa pui la action orice fisier protejat (vezi mai jos)
creezi auth.php in care pui:<?php session_start(); // daca parola e corecta sau autorizarea s-a facut anterior if ($_POST['parola']=='parola pe care o vrei' || $_SESSION['logat']==1) {     // salvam in variabila de sesiune faptul ca s-a facut autorizarea     $_SESSION['logat']=1; }     else {         session_destroy();         header("Location: login.php");// inapoi la login         exit();     } ?>
EXACT LA INCEPUTUL lui admin.php pui<?php include 'auth.php'; ?>
De fapt linia asta poti sa o pui si in alte fisiere php pe care vrei sa le protejezi.

Pentru logout pui link catre logout.php care va avea continutul asta:<?php session_start(); session_destroy(); header("Location: login.php");?>

Iti recomand totusi sa citesti si cateva tutoriale, ca se te prinzi cum merge treaba.
Desi cred ca ai facut-o deja, ca de joi a trecut ceva timp :) .
Sus  
mihnea sim



Data înscrierii: 20/Aug/2004
Mesaje: 149
Locație: Alexandria

Trimis: Sâm Oct 02, 2004 11:17 pm    Titlul subiectului:  

ma inchin tie johnutz .. intotdeauna ideile bune vin de la contraexemple! Mersi mult!
Sus  
beginner18



Data înscrierii: 30/Aug/2004
Mesaje: 757
Locație: Bucuresti

Trimis: Vin Oct 08, 2004 11:00 pm    Titlul subiectului:  

va multumesc
Sus  
PHPRomania Bot
Bot Member


Data înscrierii: 27/Dec/2007
Mesaje: 1
Locaţie: Server Google
Trimis: Mie Dec 26, 2007 7:01 pm   Titlul subiectului: Ad  

Sus  
 
       Pagina de start a forumului Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc -> PHP Incepători
Pagina 1 din 1


Powered by phpBB 2.0.22 © 2001, 2002 phpBB Group
Varianta în limba română: Romanian phpBB online community