Sikre at bruger ikke sletter andres bookinger

Tags:    php

<< < 12 > >>
På mit bookingsystem kan brugere vælge at slette deres booking igen.
Jeg vil gerne have, at brugeren kun kan slette egne tilføjede bookinger og hvis han prøver at slette andres - får en meddelse "du kan ikke" o.s.v.
Hvordan kan jeg det ?
Jeg har tabellen "event2" med felterne: cod, active, title, userid, date, from_, till

Min kode:

<?PHP

include_once("core/main.php");
//if( !check_user_class($config["admmenu"]["events2"]["class"]) ) exit;

if( !check_module("events2") ) die( "module not enabled" );


include_once( "modules/events2/lang/msg_".check_lang($cfg["core"]["lang"]).".php" );
$index_page = false;

$page_name = $lang["EVENTS2_ADMIN"];

draw_header();

theme_draw_centerbox_open( $lang[EVENTS2_ADMIN] );

{
global $config, $cfg, $lang;


mysql_query("DELETE FROM {$config["prefix"]}_events2 WHERE cod='$cod'");

echo "Den valgte booking blev slettet!<br><br>";
}

echo "\\n";

$res = mysql_query("SELECT * from {$config["prefix"]}_events2 ORDER BY cod DESC LIMIT 0, 100");

while($row = mysql_fetch_array($res));


theme_draw_centerbox_close();
theme_draw_centerbox_open( $lang["EVENTS_LIST_EVENTS"] );
events2_draw_list();

theme_draw_centerbox_close();
draw_footer();
?>

Stig



12 svar postet i denne tråd vises herunder
2 indlæg har modtaget i alt 5 karma
Sorter efter stemmer Sorter efter dato
På mit bookingsystem kan brugere vælge at slette deres booking igen.
Jeg vil gerne have, at brugeren kun kan slette egne tilføjede bookinger og hvis han prøver at slette andres - får en meddelse "du kan ikke" o.s.v.
Hvordan kan jeg det ?
Jeg har tabellen "event2" med felterne: cod, active, title, userid, date, from_, till

Min kode:
Fold kodeboks ind/udKode 


Stig


Fold kodeboks ind/udKode 


på den måde bliver der ikke slettet noget fra din database hvis userid ikke passer!

Casper

[Redigeret d. 31/07-04 20:29:20 af Casper Steinmann]



Du kan bede om brugernavn og adgangskode hver gang nogen vil slette noget; på den måde bliver du mindre følsom overfor session-hijacking

mysql_query("DELETE FROM {$config["prefix"]}_events2 WHERE cod='$cod'");


Men jeg vil også råde dig til at gøre noget ved din følsomhed overfor SQL-indsættelses angreb, så ikke du en dag mister hele din database - det ku' være pænt surt:

Fold kodeboks ind/udKode 



- karmazilla -



Du kan bede om brugernavn og adgangskode hver gang nogen vil slette noget; på den måde bliver du mindre følsom overfor session-hijacking

- karmazilla -


Mine brugere er i forvejen logget ind med brugernavn og adgangskode.
Jeg savner bare en funktion der gør, at bruger1 ikke kan slette bookinger foretaget af bruger2.
stigman




Fold kodeboks ind/udKode 


på den måde bliver der ikke slettet noget fra din database hvis userid ikke passer!

Casper

[Redigeret d. 31/07-04 20:29:20 af Casper Steinmann]




$useridFraSession - Hvordan mener du ?



stigman

[Redigeret d. 31/07-04 22:06:43 af Allan Christensen]




Fold kodeboks ind/udKode 


på den måde bliver der ikke slettet noget fra din database hvis userid ikke passer!

Casper

[Redigeret d. 31/07-04 20:29:20 af Casper Steinmann]



$useridFraSession - Jeg forstår ikke helt, hvordan mener du ?



stigman

[Redigeret d. 31/07-04 22:06:43 af Allan Christensen]

stigman



Du skrev at brugerne var logget ind, og du har sikkert styr på hvem der er logget ind vha. sessions eller cookies. Det du så bør gøre, eller som man gør :) er, at man i en sessionvariabel el. cookie, gemmer brugerid'et! på den måde kan du altid identificere en bruger ud fra deres navn og ikke fra deres brugernavn...

Casper



Du skrev at brugerne var logget ind, og du har sikkert styr på hvem der er logget ind vha. sessions eller cookies. Det du så bør gøre, eller som man gør :) er, at man i en sessionvariabel el. cookie, gemmer brugerid'et! på den måde kan du altid identificere en bruger ud fra deres navn og ikke fra deres brugernavn...

Casper


Det er den nemme måde at gøre det på, og det kommer selvfølgelig an på hvor vigtig databasen er og hvor højt sikkerheden prioteres.
sessions og coockies er skrøbelige og ikke sikre nok til at betro adgangen til persondata




- karmazilla -



Du skrev at brugerne var logget ind, og du har sikkert styr på hvem der er logget ind vha. sessions eller cookies. Det du så bør gøre, eller som man gør :) er, at man i en sessionvariabel el. cookie, gemmer brugerid'et! på den måde kan du altid identificere en bruger ud fra deres navn og ikke fra deres brugernavn...

Casper

Det er den nemme måde at gøre det på, og det kommer selvfølgelig an på hvor vigtig databasen er og hvor højt sikkerheden prioteres.
sessions og coockies er skrøbelige og ikke sikre nok til at betro adgangen til persondata


- karmazilla -


Hvis ikke sessions og cookies, hvordan kan det så gøres ?

stigman





Fold kodeboks ind/udKode 


på den måde bliver der ikke slettet noget fra din database hvis userid ikke passer!

Casper

Jeg har denne her $_SESSION["wt"]["uid"]
Hvordan skal jeg så få flettet den ind i koden så den checker SESSION med {$config["prefix"]}_events2 userid'et .

stigman



Fold kodeboks ind/udKode 


eller

Fold kodeboks ind/udKode 


hehe... det er for lang tid siden jeg har lavet php... :)

Casper



<< < 12 > >>
t