Kezdőoldal » Számítástechnika » Programozás » Hogy tudok egy PHP oldalt...

Hogy tudok egy PHP oldalt védetté tenni?

Figyelt kérdés

Ugye van a login rendszerem, ami cookie-t használ.

Erre hogykellene rávizsgálnom pl: a profile.php elején?

Vagy hogyan tudnám védeni a tartalmat? mondjuk ez nemis kell külön hiszen ha nemvagyunk belépve (nem létezik a süti akkor egyből átírányít egy Locate parancsal, nem?)


Segítenétek ebben a pársorban?

Mert most ezzel elakadtam kicsit :/


Köszönöm


2016. júl. 23. 10:39
 1/8 anonim ***** válasza:

Hogy használ sütit?

Mert ha csak annyit teszel el egy sütibe hogy belépve, az semmit nem ér.

Használj inkább sessiont, jobban jársz.

2016. júl. 23. 12:30
Hasznos számodra ez a válasz?
 2/8 A kérdező kommentje:
bocsi, hülye vagyok sessiont akartam irni, az van most is. Csak a védett oldalakra nemtudom hogyan kellene ezt beirni az elejére :/
2016. júl. 23. 12:49
 3/8 anonim ***** válasza:

Hajaj, eleve nagyon rossz az elképzelésed is.

Ha cookie van, akkor tilos csak azt nézni, hogy létezik-e vagy sem, mivel az a felhasználó gépén van, és tudja is módosítani.

A cookienak kell valami tartalmat adni, ami alapján lehet azonosítani a felhasználót. NEM A FELHASZNÁLÓNEVET KELL BELEÍRNI! Mert akkor bárki beléphet bárki fiókjába!

Például generálsz egy random hash-et és az lesz egy id. És azt írod a cookie-ba, majd ellenőrzöd, ha az az id helyes akkor beengeded, ha nem akkor átirányítod a főoldalra.


De mivel még ennyire nem értesz hozzá (a kérdés alapján) maradj inkább a session-nél, mert az biztonságosabb ilyen szempontból.

2016. júl. 23. 12:51
Hasznos számodra ez a válasz?
 4/8 A kérdező kommentje:

Hátsz valóban, még csak kapizsgálom a témát, esetleg ez alapján, tudnál nekem írni egy alap profile.php-t?

Annyi kikötésem lenne hozzá hogy formailag ugyanaz legyen (div) meg fenn a Üdvözöllek, username meg a kijelentkezés megmaradjon, csak a tartalmat kellene valahogy levédeni hogy konkrétan az URL ismeretében ne férjenek hozzá.


index.php

<?php

/* Cookie keresés*/

session_name('LoginForm');

@session_start();


error_reporting(0);

include("config.php");


/* Hibakeresés*/

$error = '';

if(isset($_POST['is_login'])){

$sql = "SELECT * FROM ".$SETTINGS["USERS"]." WHERE `email` = '".mysql_real_escape_string($_POST['email'])."' AND `password` = '".mysql_real_escape_string($_POST['password'])."'";

$sql_result = mysql_query ($sql, $connection ) or die ('request "Could not execute SQL query" '.$sql);

$user = mysql_fetch_assoc($sql_result);

if(!empty($user)){

$_SESSION['user_info'] = $user;

$query = " UPDATE ".$SETTINGS["USERS"]." SET last_login = NOW() WHERE id=".$user['id'];

mysql_query ($query, $connection ) or die ('request "Could not execute SQL query" '.$query);

}

else{

$error = 'Nem létezik ilyen email/felhasználó!';

}

}


if(isset($_GET['ac']) && $_GET['ac'] == 'logout'){

$_SESSION['user_info'] = null;

unset($_SESSION['user_info']);

}

?>

<!DOCTYPE html>

<html>

<head>

<title>Üdvözöllek a főoldalon!</title>

<meta charset="UTF-8">

<link rel="stylesheet" type="text/css" href="style.css">

<script src="js/jquery-1.8.2.min.js"></script>

<script src="js/jquery.validate.min.js"></script>

<script src="js/main.js"></script>

</head>

<body>

<div id="container">


<div class="top">

<div id="banner">


<!--HA BE VAN JELENTKEZVE AKKOR A BEJELENTKEZVE MENÜT LÁTJA-->


<?php if(isset($_SESSION['user_info']) && is_array($_SESSION['user_info'])) { ?>

<div class="bejelentkezve_menu">

Üdvözöllek, <b><a href="profile.php"><?php echo $_SESSION['user_info']['name'] ?>! </a></b>


<a href="index.php?ac=logout" class="logout float-right">Kijelentkezés</a>

</div>



<!--HA NINCS BEJELENTKEZVE AKKOR A LOGIN FORMOT LÁTJA-->



<?php } else { ?>

<div class="bejelentkezve_menu">

<form id="login-form" class="login-form" name="form1" method="post" action="index.php">

<input type="hidden" name="is_login" value="1">

<table>

<tr>

<td>

<input id="email" name="email" class="form-control required" type="email" placeholder="Email">

<input id="password" name="password" class="form-control required" type="password" placeholder="Jelszó">

<input name="submit" type="submit" value="Bejelentkezés"/>

</td>

</tr>

</table>

</form>

</div>

<?php } ?>



<!--ITT KEZDŐDIK A TARTALOM-->


<img src="bgc.jpg" width="1200px" height="165px">

</div>

<div id="menubar">

<center>

<a href="">| FŐOLDAL |</a>

<a href="">| MÁSODIK |</a>

<a href="">| HARMADIK |</a>

<a href="">| NEGYEDIK |</a>

<a href="">| ÖTÖDIK |</a>

<a href="">| HATODIK |</a>

</center>

</div>

</div>


<div id="content">


<!--ITT KEZDŐDIK A REJTETT TARTALOM-->

<!--ÚJRA MEG KELL VIZSGÁLNI, HOGY BE VAN-E JELENTKEZVE-->


<?php if(isset($_SESSION['user_info']) && is_array($_SESSION['user_info'])) { ?>


<!--HA BE VAN JELENTKEZVE, AKKOR EZT A TARTALMAT LÁTJA-->

<!-- ****************************************************************************************************************************************** -->

<p>Ez itt a rejtett tartalom helye.</p>



<!-- ****************************************************************************************************************************************** -->

<?php }else{ ?>


<!--HA VALAMI HIBA TÖRTÉNT A BEJELENTKEZÉS SORÁN AKKOR KIÍRJUK-->


<?php if($error) { ?>

<em>

<p><center><?php echo $error ?></center></p>

</em>



<?php }else{ ?>



<!--HA NINCS BEJELENTKEZVE ÉS NINCS HIBA, AKKOR JELENTKEZZEN BE!-->


<p>Jelentkezz be!</p>


<?php


}

}


?>

</div>

</div>

</body>

</html>

2016. júl. 23. 13:29
 5/8 anonim ***** válasza:
Hogyne persze.
2016. júl. 23. 14:14
Hasznos számodra ez a válasz?
 6/8 anonim ***** válasza:

Nem nem írom meg kenek a profil.php-at.

Hogy miért nem?

Azért mert ha még csak kapizsgálod, az az jelenti hogy tanulod. Ha szeretnél tudni is valami, akkor ideje megtanulni a google-t használni és keresni megoldásokat.

Nézz youtube-on videókat ilyen login rendszerekről, találd meg amit akarsz és csináld meg.

Mert persze megcsinálhatom én is, de ha csak úgy megcsinálom, akkor nekem mi hasznom van belőle? Gondolom nem fizetnél érte, és neked se lenne hasznod belőle, mert úgy tanul az ember ha sikerül megoldania a problémákat. Ha sikerült megoldani, akkor legközelebb már nem fogsz ilyen problémába ütközni.

Mivel ez egy eléggé egyszerű alap feladat, ezért kétlem, hogy egy kis keresgéléssel ne tudd megoldani.

2016. júl. 23. 17:08
Hasznos számodra ez a válasz?
 7/8 anonim ***** válasza:

Egyébként kicsit átnézve amit kiírtál kódot nem értem hol a probléma?

Ugyan azt kell megcsinálnod a profil.php-ban mint a login formnál.

Csak annyi különbséggel, hogyha nincs bejelentkezve, akkor átirányítod a főoldalra.

2016. júl. 23. 17:11
Hasznos számodra ez a válasz?
 8/8 anonim ***** válasza:

if(isset($_SESSION["belepve"])) { Tartalom amit csak belépett felhasználó láthat. } else { Ezt már mindenki látja. }


Loginban én így oldottam meg:


$_SESSION["belepve"] = 1;


Üdv.

Duku

2016. júl. 24. 08:01
Hasznos számodra ez a válasz?

Kapcsolódó kérdések:




Minden jog fenntartva © 2025, www.gyakorikerdesek.hu
GYIK | Szabályzat | Jogi nyilatkozat | Adatvédelem | Cookie beállítások | WebMinute Kft. | Facebook | Kapcsolat: info(kukac)gyakorikerdesek.hu

A weboldalon megjelenő anyagok nem minősülnek szerkesztői tartalomnak, előzetes ellenőrzésen nem esnek át, az üzemeltető véleményét nem tükrözik.
Ha kifogással szeretne élni valamely tartalommal kapcsolatban, kérjük jelezze e-mailes elérhetőségünkön!