Noble Skrevet 1. mars 2010 Del Skrevet 1. mars 2010 Litt usikker på om dette er et apachespørsmål, but here goes. Jeg har laget en side hvor brukere kan logge på, ting skjer da i følgende rekkefølge: 1) Brukernavn og passord sjekkes mot SQL-databasen. 2) mt_rand() setter en tilfeldig verdi i en "session" tabell i databasen, denne tabellen inneholder på samme rad brukerens id slik at det er klart hvem som er logget på. 3) Verdien fra mt_rand() settes som en cookie, denne brukes til å beregne hvilken bruker som er logget på, rettigheter osv. Dersom jeg skal begrense tilgangen til en side slår jeg først opp brukerens id via session-tabellen, sjekker iden jeg får herfra opp mot en permissions table og gir output derfra. Problemet er at jeg har en del sider som blir lastet via php include. Om noen prøver å få tilgang til disse direkte, feks ved å skrive http://xx/random_page.php får de se siden, og omgår dermed "sikkerhetsprosessen" lenger opp på siden. Spørsmålet blir da: Finnes det en måte å sette rettigheter i apache/php slik at sider KUN kan vises dersom de kalles av phps include? Lenke til kommentar
TheClown Skrevet 1. mars 2010 Del Skrevet 1. mars 2010 Du kan gjøre dette gjennom enkle sikkerhetssikringer. Hvis du setter en variable før du includerer, og sjekker om denne variablene er satt i fila kan du sikre mot overgrep som dette $INCLUDEERKULT = 1337; include "login.php"; I login.php if ($INCLUDEERKULT == 1337) // Her skjer det ting else die("Hacking attempted"); Lenke til kommentar
Noble Skrevet 1. mars 2010 Forfatter Del Skrevet 1. mars 2010 Noen på IRC mener jeg kan bruke $http_refer, er det en dårlig ide? Lenke til kommentar
Ernie Skrevet 1. mars 2010 Del Skrevet 1. mars 2010 Du kan gjøre dette gjennom enkle sikkerhetssikringer. Hvis du setter en variable før du includerer, og sjekker om denne variablene er satt i fila kan du sikre mot overgrep som dette $INCLUDEERKULT = 1337; include "login.php"; I login.php if ($INCLUDEERKULT == 1337) // Her skjer det ting else die("Hacking attempted"); Idéen er god, men å bruke vanlige variabler til det er bare dumt. Hva skjer der når register_global er skrudd på? Bruk nå heller konstanter til det. Noen på IRC mener jeg kan bruke $http_refer, er det en dårlig ide? Ja, det er en dårlig idé. Dette kan lett endres hvis man virkelig ønsker tilgang, og hva gjør du med de som surfer uten å sende «referrer» til serveren? Lenke til kommentar
JohndoeMAKT Skrevet 1. mars 2010 Del Skrevet 1. mars 2010 Spørsmålet blir da: Finnes det en måte å sette rettigheter i apache/php slik at sider KUN kan vises dersom de kalles av phps include? Order deny,allow Deny from all Lenke til kommentar
Noble Skrevet 1. mars 2010 Forfatter Del Skrevet 1. mars 2010 Idéen er god, men å bruke vanlige variabler til det er bare dumt. Hva skjer der når register_global er skrudd på? Bruk nå heller konstanter til det. Vennligst utdyp Lenke til kommentar
Ernie Skrevet 1. mars 2010 Del Skrevet 1. mars 2010 Idéen er god, men å bruke vanlige variabler til det er bare dumt. Hva skjer der når register_global er skrudd på? Bruk nå heller konstanter til det. Vennligst utdyp I stedet for $INCLUDEERKULT = 1337; include "login.php"; I login.php if ($INCLUDEERKULT == 1337) // Her skjer det ting else die("Hacking attempted"); som vil medføre at login.php?INCLUDEERKULT=1337 i kombinasjon med register_globals (som vil lage $INCLUDEERKULT og sette den til 1337) vil utføre koden man skulle vært innlogget får kunne kjøre, benytter man heller define('INCLUDEERKULT', 1337); include "login.php"; I login.php if (defined('INCLUDEERKULT') && INCLUDEERKULT == 1337) // Her skjer det ting else die("Hacking attempted"); som ikke vil være usikkert selv når register_globals er skrudd på. Lenke til kommentar
Noble Skrevet 1. mars 2010 Forfatter Del Skrevet 1. mars 2010 (endret) som ikke vil være usikkert selv når register_globals er skrudd på. The more you know Og den koden ovenfor kan jeg vel også legge in en egen .php fil, for deretter å inkludere den? Må bare huske å legge med en ekstra } på slutten? Endret 1. mars 2010 av Noble Lenke til kommentar
JohndoeMAKT Skrevet 1. mars 2010 Del Skrevet 1. mars 2010 Noble: Se heller et par poster opp. Lenke til kommentar
ratata Skrevet 2. mars 2010 Del Skrevet 2. mars 2010 http://httpd.apache.org/docs/2.2/mod/mod_authz_host.html Beskriving av Allow, Deny og Order direktiva. Bruk desse i f.eks <Directory>. Lenke til kommentar
Anbefalte innlegg
Opprett en konto eller logg inn for å kommentere
Du må være et medlem for å kunne skrive en kommentar
Opprett konto
Det er enkelt å melde seg inn for å starte en ny konto!
Start en kontoLogg inn
Har du allerede en konto? Logg inn her.
Logg inn nå