 |
Forum PHP Romania - Discutii despre PHP, MySQL, Javascript, AJAX, etc Comunitatea PHP Romania
|
| Subiectul anterior :: Subiectul următor |
| Autor |
Mesaj |
beginner18
Data înscrierii: 30/Aug/2004
Mesaje: 750
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: 750
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 |
|
| |
|