Avatar billede SocialTau Nybegynder
30. september 2010 - 11:06 Der er 11 kommentarer og
1 løsning

PHP mkdir() med kode, kan det lade sig gøre?

Hej jeg er ved at lave et system for en lærer, hvor hans elever skal kunne uploade afleveringsfiler, hver elev har deres egen mappe på serveren, som bliver oprettet når eleven bliver oprettet.

Det var nyt for mig hele det her mappe oprettelses noget, så jeg har benyttet mig af mkdir(); Andre forslag er også velkomne.

Det er vigtigt at hver elev har sin egen mappe, da dette går det muligt at overskue/redigere igennem ftp for læreren.

Men er der en måde hvorpå at jeg kan nægte folk adgang til mapperne hvis de forsøger at komme ind udefra, som både tillader ftp adgang med rettighed til read and write, og php adgang når man er logget ind?

Det ville være foretrukkent hvis at hver enkelt mappe har en seperat kode, så eleverne ind i mellem heller ikke kan hente hinandens filer?
Avatar billede Rebjorn Nybegynder
30. september 2010 - 12:24 #1
PHP delen kan 'vel' rettes ind ved at lave en .htaccess når du laver mappen i dit script. Hvis du ved hvad det er?

Nu ved jeg ikke så meget om FTP protokollen og server softwares, men hvis du kan finde et FTP server software som har brugerne i en sql database som dit php script kan tilgå, så er der også en vej der.

Jeg håber det giver mening :)
Avatar billede SocialTau Nybegynder
01. oktober 2010 - 12:11 #2
Nu har jeg kigget lidt på .htacces, og det er bestemt en løsning så vidt jeg kan se, men synes ikke rigtig jeg kan finde en anstændig guide til hvordan man får php til at interagere med det, er der nogle der har nogle vise ord? eller en overskuelig guide et sted?
Avatar billede Rebjorn Nybegynder
01. oktober 2010 - 12:48 #3
Min fejl. Hvis du tillader php at ændre din htaccess kan det skabe et rimelig stort sikkerhedshul.

Jeg fandt på en anden ide til gengæld. Hvad med at have en "default" elevmappe som du kan kopiere og omdøbe vha. http://php.net/manual/en/function.copy.php

Og i default mappen have en index php fil som kræver at du har en gyldig login session igang.

I oprettelsen af brugeren kan du så holde dig 100% til sql :)
Avatar billede Rebjorn Nybegynder
01. oktober 2010 - 15:13 #4
Fedest. Tak for ingenting....
Avatar billede SocialTau Nybegynder
01. oktober 2010 - 16:27 #5
haha hov jeg beklager jeg var ikke lige ved computeren,

Jamen hvis man så siger at mappen hedder users/anders
og jeg i den mappe har en index.php som kræver en gyldig login session. det forhindrer jo ikke folk i at skrive users/anders/randomfile.zip
og på den måde få adgang til filen?

Til trods for at folk højst sandsynligvis er ret ligeglade med afleveringer fra en ottende klasse, så er det et af kravene til opgaven
Avatar billede Rebjorn Nybegynder
01. oktober 2010 - 16:45 #6
Kan du ikke sørge for at uploads bliver uploadet til en tilfældigt genereret-mappenavn under deres brugermappe og sørge for at søgemaskinernes bots ikke kan søge i mapperne i stedet?

Det er rimelig ærgeligt at lave php-genererede .htaccess filer, især hvis dit php script også skal ændre den slags filer. Det åbner op for en hel masse former for hacking vha. upload, injektion osv. Ikke at en ottende-klasse skulle kunne det. Men hvis sikkerhed er et Must :)

Hvis eleverne får lyst til at dele deres opgaver ud til hinanden, skal de nok finde på andre måder også selvom de er under beskyttelse af .htaccess!
Avatar billede Rebjorn Nybegynder
01. oktober 2010 - 16:47 #7
Hvis du allerede har givet dig fuldt ud til .htaccess, er der en god forum post her der beskriver hvordan man redigerer det med php.

Men igen, det er ikke en god idé ;) ..

http://forums.devshed.com/php-development-5/editing-htaccess-with-php-552406.html
Avatar billede SocialTau Nybegynder
01. oktober 2010 - 18:09 #8
problemet med at smide dem i forskellige random generede mapper er jo at så forsvinder lærerens mulighed for logisk ftp adgang.

hmm det er da råddent at det skal være så besværligt at gøre ting beskyttet udefra :P nå men tusind tak for hjælpen vil kigge lidt på det med .htacces - tak for link
Avatar billede Rebjorn Nybegynder
01. oktober 2010 - 18:18 #9
Altså, hele navnet behøver jo ikke være random ;)

Du kan bare have en 4-cifret kode i slutningen af mappenavnet f.eks.:

ftp://ftp.skoleside.dk/klasser/8b/lars_johansen/2010/aflevering_danskopg_05_Xc3rT.zip

Hvis du forstår? :)
Avatar billede Rebjorn Nybegynder
01. oktober 2010 - 18:19 #10
Den der kode var så 5-cifret, men det siger vi ikke til nogen ;)
Avatar billede SocialTau Nybegynder
04. oktober 2010 - 12:48 #11
ja, men hvis eleverne så sidder ved en skole computer, og går ind på siden, så vil tidligere downloads jo være listet i historikken, og det er altså et for nemt udgangspunkt til at få fat i de andres opgaver.

men du er da seriøst engageret i det problem her, det er da super awesome!
Avatar billede Rebjorn Nybegynder
04. oktober 2010 - 22:45 #12
Men også selvom filen er i historikken, skal man jo have et login til ftp-serveren? ;)

Og det er fordi problemet interesserer mig :)

Håber du kommer op med et godt system.
Avatar billede Ny bruger Nybegynder

Din løsning...

Tilladte BB-code-tags: [b]fed[/b] [i]kursiv[/i] [u]understreget[/u] Web- og emailadresser omdannes automatisk til links. Der sættes "nofollow" på alle links.

Loading billede Opret Preview

Log ind eller opret profil

Hov!

For at kunne deltage på Computerworld Eksperten skal du være logget ind.

Det er heldigvis nemt at oprette en bruger: Det tager to minutter og du kan vælge at bruge enten e-mail, Facebook eller Google som login.

Du kan også logge ind via nedenstående tjenester