Php COOKIE test,,

Regulæruttrykk, objektorientering, samt problemstillinger omkring optimalisering og sikkerhet.

Php COOKIE test,,

Innlegg Kjetil » 07.05.2012 23:06

Hallo.. Leeenge siden jeg har brukt PHP nå så trenger litt help..
Bruker dette skriptet(se under) for og verfisere om bruker er logget inn..

Det jeg ønsker er at jeg bare kan include en fil som skjekker om bruker er logget inn, istedenfor og plassere innholdet under
Kode: Merk alt
echo "Your Content<p>";
Så ønsker jeg og bare kunne ha php/html fritt omhverandre i bunnen.

Går bra og ha en php i bunnen, sålenge jeg kan bruke php/html fritt i innholdet.
Hele skriptet:
Kode: Merk alt
<?php

// Connects to your Database

mysql_connect("your.hostaddress.com", "username", "password") or die(mysql_error());

mysql_select_db("Database_Name") or die(mysql_error());


//checks cookies to make sure they are logged in

if(isset($_COOKIE['ID_my_site']))

{

   $username = $_COOKIE['ID_my_site'];

   $pass = $_COOKIE['Key_my_site'];

       $check = mysql_query("SELECT * FROM users WHERE username = '$username'")or die(mysql_error());

   while($info = mysql_fetch_array( $check ))    

      {



//if the cookie has the wrong password, they are taken to the login page

      if ($pass != $info['password'])

         {          header("Location: login.php");

         }



//otherwise they are shown the admin area   

   else

         {

          echo "Admin Area<p>";

echo "Your Content<p>";

echo "<a href=logout.php>Logout</a>";

         }

      }

      }

else



//if the cookie does not exist, they are taken to the login screen

{         

header("Location: login.php");

}

?>


Forstod hva jeg mente? :)
Mvh -Kjetil
Kjetil
Medlem
 
Innlegg: 69
Registrert: 23.05.2008 19:04

Re: Php COOKIE test,,

Innlegg ingeva » 14.08.2012 17:09

Kjetil skrev:Hallo.. Leeenge siden jeg har brukt PHP nå så trenger litt help..
Bruker dette skriptet(se under) for og verfisere om bruker er logget inn..

Det virker litt tungvint å bruke en database til dette.
Selv setter jeg en $_SESSION-variabel ved innlogging, og sletter den ved utlogging. Den blir uansett borte når man lukker nettleseren. Vil du ha en tidsbegrenset innlogging, kan en cookie med begrenset levetid være greit.
"If you're staying with Microsoft you're getting more and more overwhelmed to update and change your whole IT infrastructure." Peter Hofmann . . . . Se her.
Brukerens avatar
ingeva
Seniormedlem
 
Innlegg: 1078
Registrert: 24.01.2011 6:48
Bosted: Sandvika

Re: Php COOKIE test,,

Innlegg Kjetil » 14.08.2012 18:34

Alt er oppe og det er et fungerende system. Men sikkerheten er dårlig. Vet du navnet på fila som blir inkludert kommer man rett inn, grunnet det er ikke noe cookie test..
Mvh -Kjetil
Kjetil
Medlem
 
Innlegg: 69
Registrert: 23.05.2008 19:04

Re: Php COOKIE test,,

Innlegg Sami » 14.08.2012 19:36

Kjetil skrev:Alt er oppe og det er et fungerende system. Men sikkerheten er dårlig. Vet du navnet på fila som blir inkludert kommer man rett inn, grunnet det er ikke noe cookie test..

En måte å unngå at folk kan bruke denne filen utenom;

include.php(eller hva du enn kaller den):
Kode: Merk alt
if(!isset($set))
{
die;
}
...
 


index.php(eller hvilken side den nå er inkludert):
Kode: Merk alt

$set
=true;
include(
"include.php");
...
 
Linux,
Du som er i /dev/sda1,
Led oss ikke inn i Microsoft-helvette, mens frels oss fra Windows,
For filsystemet er ditt, og sudo og root access i all evighet,
Enter.
Brukerens avatar
Sami
Moderator
 
Innlegg: 251
Registrert: 02.08.2011 18:42
Bosted: Søgne

Re: Php COOKIE test,,

Innlegg ingeva » 16.08.2012 8:02

Jeg har et system som fungerer slik:
Ved oppstart lages en liste over tillatte include-filer, basert på hvilken katalog de ligger i. Listen er i form av en tabell hvor index er basenavnet til filen, og hvert element inneholder komplettt filnavn (med katalog-sti).
Ved innlogging lages en liste over filene i "Privat"-katalogen, som da legges til "Tillatt"-listen.
På denne måten er det komplett umulig å benytte seg av include-filer som ligger i Privat-katalogen dersom man ikke er eller har vært logget inn i samme session. Det hjelper ikke med hacking: Hvis man ikke har logget inn i samme session, "finnes" ikke include-filen.
Listen er selvsagt en del av $_SESSION-tabellen.
Det er selvsagt en tilleggs-fordel her: Siden man ikke benytter søking i filsystemet hver gang en include-fil benyttes, vil man få en litt bedre hastighet og litt mindre belastning på server. Neppe merkbart, men likevel...

Det trengs ikke cookies til dette, bortsett fra PHPSESSION-ID, som slettes automatisk når session avsluttes.
"If you're staying with Microsoft you're getting more and more overwhelmed to update and change your whole IT infrastructure." Peter Hofmann . . . . Se her.
Brukerens avatar
ingeva
Seniormedlem
 
Innlegg: 1078
Registrert: 24.01.2011 6:48
Bosted: Sandvika


Gå til Avansert PHP

Hvem er i forumet

Brukere som leser i dette forumet: Ingen registrerte brukere og 4 gjester