Avatar billede Slettet bruger
01. juni 2006 - 13:11 Der er 14 kommentarer og
1 løsning

ungå at folk skriver php til fil

hej
Jeg har et txtfelt hvor folk kan skrive text og html, men jeg vil gerne være sikker på at de ikke skriver php i filen da texten gemmes i en fil.(dog med endelsen .txt så den kan vel ikke executes?)

adslashes gør at folk ikke kan skrive apostroffer men de kan stadig skrive <?

skal man sikre mod det, eller er de rigeligt med adslashes.

Når jeg skal bruge inholdet fra filen henter jeg med
stripslashes(file_get_contents('fil.txt'));

Er det meget usikkert ...eller
Avatar billede Slettet bruger
01. juni 2006 - 13:13 #1
Du kan jo eventuelt bare bruge: str_replace("<", "&lt;", stripslashes(file_get_contents('fil.txt')));
Avatar billede Slettet bruger
01. juni 2006 - 13:14 #2
Hvis du stadig vil kunne skrive html er det bare:

str_replace("<?", "&lt;?", stripslashes(file_get_contents('fil.txt')));
Avatar billede tdafoobar Nybegynder
01. juni 2006 - 13:14 #3
Hvis du bruger .txt så kan de jo ikke execute den fil some stand-alone.
og hvis du bruger file_get_contents() bliver php'en ikke parset.

Så der er ingen sikkerhedsproblemer i din løsning.
Avatar billede tdafoobar Nybegynder
01. juni 2006 - 13:15 #4
Hvorfor bruger du forresten addslashes() når du gemmer i en fil ? addslashes er primært til SQL data.
Avatar billede Slettet bruger
01. juni 2006 - 13:18 #5
Nå?
Jeg troede altid man skulle køre den igennem addslashes når man gemmer i en fil af sikkerhedsgrunde for at gøre koden ufarlig
Avatar billede Slettet bruger
01. juni 2006 - 13:23 #6
addslashes modvirker, at man som bruger kan lave SQL-injections. Det er ikke nødvendigt i din .txt-fil. Det er faktisk overhovedet ikke nødvendigt at tage nogen sikkerhedshensyn for dig - med mindre du naturligvis ikke vil have folk til eksempelvis at lave en <div style="width: 100000px;">..
Avatar billede morhan Novice
01. juni 2006 - 14:08 #7
det kan være et problem, hvis filen ligger i en bibliotek, som er tilgængeligt udefra, og hvis brugeren kan bestemme navnet på filen
Avatar billede Slettet bruger
01. juni 2006 - 16:40 #8
...hvordan gør man så et biliotek ikke er tilgængeligt udefra??

og gør det noget at brugeren kan bestemme navnet på filen så længe han ikke kan bestemme hvilken extension den har?
Avatar billede Slettet bruger
01. juni 2006 - 17:22 #9
Nej det gør ikke noget hvad filen hedder.
Avatar billede morhan Novice
01. juni 2006 - 18:02 #10
Enten skal du lægge filen i et bibliotek som ikke ligger under dit wwwroot bibliotek. Man kan også konfiguere Apache via .htaccess. Den kan du så bruge til at nægte adgang til det bibliotek som indeholder filerne

Hvordan ser din kode ud til at sammesætte filnavnet?
Avatar billede Slettet bruger
01. juni 2006 - 18:06 #11
$indhold='indhold.txt'
$nr= "et id"

$filnavnet=$nr.$indhold
Avatar billede Slettet bruger
01. juni 2006 - 18:44 #12
simonhans73, så kan din bruger vel heller ikke selv vælge filens navn?
Avatar billede Slettet bruger
01. juni 2006 - 20:08 #13
nej det er rigtigt
Avatar billede Slettet bruger
06. august 2006 - 18:28 #14
i må gerne lægge svar
Avatar billede Slettet bruger
16. august 2006 - 19:28 #15
unskyld men der ikke er nogen der læggert svar tager jeg dem selv
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
Kategori
Vi tilbyder markedets bedste kurser inden for webudvikling

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