Sikkerhet

Diskusjoner som omhandler databaser og SQL postes her.

Sikkerhet

Innlegg MikkeMus » 25.06.2012 18:35

Hei.

Jeg forstår ikke dette med sikkerhet i SQL.

Jeg skriver i PHP og kjører en spørring slik at kun innlogget bruker får opp sine records. Men det er jo bare for brukeren å endre spørringen (POST/GET) og få opp andre brukeres records. Er det mulig å sette sikkerhet på tabellnivå slik at det kun er innolegget bruker som får tilgang til egne records?

MM
MikkeMus
Medlem
 
Innlegg: 46
Registrert: 23.04.2012 15:01

Re: Sikkerhet

Innlegg adeneo » 25.06.2012 19:15

Du setter ikke sikkerhet på tabellnivå, sikkerheten ivaretas gjennom innloggingssystemet som da sannsynligvis har et opplegg med brukernavn og passord, og når dette er tastet inn riktig og brukeren er identifisert så settes en eller annen variabel, for eksempel i $_SESSION som du sjekker for å se at brukeren er innlogget riktig før dataene som forespørres sendes til brukeren.
Hvor avansert du gjør dette er normalt direkte overførbart til hvor sensitive dataene er!
adeneo
Medlem
 
Innlegg: 628
Registrert: 08.04.2011 21:09

Re: Sikkerhet

Innlegg MikkeMus » 26.06.2012 13:30

Databasen inneholder svært personlige opplysninger.

Jeg har studert et par andre systemer av denne sorten og ser at de har laget en slags beskyttelse. De andre systemene jeg har studert bruker GET fuknsjonen slik at SQL søket gjøres via lenken. Når jeg da skriver inn en brukerid som f.eks. tilhører en annen så får jeg "du har ikke tilgang til disse dataene".

Jeg ser for meg at de kanskje har laget ett objekt som er ansvarlig for å hente ut dataene og som sjekker at man har rett brukerid til å se de rette dataene.

Er det noen som vet om noen eks. på akkurat dette?

MM
MikkeMus
Medlem
 
Innlegg: 46
Registrert: 23.04.2012 15:01

Re: Sikkerhet

Innlegg ZnigeN » 26.06.2012 23:11

Som adeneo sier bruker vel de fleste $_SESSION variabler for å identifisere brukere.

Man kan godt bruke $_GET variabel i en spørring, men for at det skal bli godkjent vil de fleste aktører sjekke at $_GET verdien stemmer med dataen som finnes i $_SESSION variablen.

Eller, alternativt kan man lagre en $_SESSION variabel kalt "admin", og hvis man logger som admin bruker vil man da få denne variabel satt til verdi "1".
Deretter kan man (før SQL spørringen) sjekke om $_SESSION['admin'] == 1, hvis ja, fortsett med SQL spørring. Hvis ikke, gi beskjed at man mangler admin rettighet.

Det var bare et eksempel.

Mulig jeg forklarte meg dårlig, skulle gjerne skrevet et eksempel i PHP, men senga hyler etter meg. Kan skrive eksempel i morgen hvis ingen andre er før meg
Brukerens avatar
ZnigeN
Medlem
 
Innlegg: 938
Registrert: 13.07.2005 1:30
Bosted: Grimstad


Gå til SQL og databaser

Hvem er i forumet

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