FAQ |
Kalender |
![]() |
#1 | |||
|
||||
Nykomling
|
Nu behöver jag lite tips på förbättringar på en del PHP-script jag har lagt upp. Jag har fått en del mail angående scripten, som säger att t.ex. mitt include-system inte är tillräckligt säkert. Men jag har aldrig uppfattat vad det är som är säkert/osäkert med det. Därför ber jag om en vettig förklaring här istället.
![]() http://gtc.td-webdesign.se/ Vill gärna ha kritik på samtliga script, och även tips om nya script att lägga upp. ![]() |
|||
![]() |
![]() |
![]() |
#2 | ||
|
|||
Banned
|
Ditt include system visar filnamnet i URLen...
Då kan man enkelt manipulera URLen och kolla ifall andra filer finns på servern. |
||
![]() |
![]() |
![]() |
#3 | |||
|
||||
Nykomling
|
Sant, men det innebär ju ändå inte någon säkerhetsrisk, eller? För om filen inte finns visas ett felmeddelande.
|
|||
![]() |
![]() |
![]() |
#4 | |||
|
||||
Flitig postare
|
Om man skriver ?p=index så får du oändlig rekursion, eftersom index-filen inkluderas i sig själv, som inkluderas i sig själv, som inkluderas i sig själv...
|
|||
![]() |
![]() |
![]() |
#5 | ||
|
|||
Supermoderator
|
Indata från användare skall alltid kontrolleras och aldrig skickas automatisk till include med endast en file_exists()-koll. Det är ju ytterst banalt (speciellt på delade system) att utnyttja detta. Det räcker t.ex. med ett risigt kodat uppladdningsscript och vips har du fått upp en fil på det lokala systemet och du kan sedan få PHP att köra den.
maximumdays är ju dessutom felaktig. Tar inte hänsyn till skottår och det finns ju för övrigt redan date('t'); för ändamålet.
__________________
www.ip2nation.com (ip till land) |
||
![]() |
![]() |
![]() |
#6 | |||
|
||||
Nykomling
|
Per: Men då får man väl se till att inte ha ett uppladdningsscript där då? :P
Och det där med maximumdays vet jag redan, har bara inte orkat ändra ![]() |
|||
![]() |
![]() |
![]() |
#7 | ||
|
|||
Mycket flitig postare
|
Jag får hudutslag när jag ser kod som ditt "includesystem"... Varför göra samma kontroller massor av gånger?
Likvärdigt: Kod:
if (isset($_GET['p'])) { if (file_exists($_GET['p'] . ".php")) { include($_GET['p'] . ".php"); } else { echo "<b>" . $_GET['p'] . ".php doesn't exist</b>"; } } else { include('start.php'); } Det som gör scriptet osäkert är väl möjligheten att via URLen inkludera filer utanför www-roten. Det positiva är väl att det bara går att hitta php-filer på det sättet. |
||
![]() |
![]() |
Svara |
|
|