Gå til innhold

.htaccess: skru av PHP i mappa?


Anbefalte innlegg

Driver å lager et filarkiv og et bildegalleri, går det an å bruke htaccess til å hindre kjøring av PHP-filer i en mappe?

Dette for hindre at brukere kan laste opp ondsinnede script til serveren og kjøre dem.

Finnes det noen andre gode løsninger?

 

<Location /folder>
AddType txt/html .php
AddType txt/html .php3
</Location>

Noe sånt kanskje...?

Lenke til kommentar
Videoannonse
Annonse

Tipper du ihvertfall skal bruke text/html, eventuelt text/plain for å være helt sikker. Uansett kan du jo sjekke i upload om filen slutter på php eller php3.

F.eks slik:

<?php
$ext = explode('.', $_FILES['file']['file_name']);
$ext = array_reverse($ext);
if($ext[0] == 'php' OR $ext[0] == 'php3')
{
die('Ugjyldig filtype');
}
?>

 

Hvis jeg misforstod rett nå.

Endret av LoS
Lenke til kommentar

joda, men da var det å vite ALLE filtypene Apache bruker PHP-motoren på da. Vet at det er .php, .php4, php3

men hva vis serveren plutselig også kjører html-filer som php? eller noe helt annet? vil helst ikke at koden min skal kreve at serverinstillingene er akkurat SÅNN...

Det er ikke noe must at man skal kunne laste opp PHP-filer, selv om det hadde vært det beste

Lenke til kommentar
Gjest Slettet+6132

Tror kanskje dette løser problemet, koden vil da komme i klartekst tror jeg.

 

.htaccess

<IfModule mod_php4.c>
php_value auto_prepend_file  disable.php
</IfModule>

 

disable.php

<?php
 ini_set("engine", "Off");
?>

 

Hvis ikke det fungerer kan du jo prøve:

AddType text/plain .php
AddType text/plain .php3
AddType text/plain .php4
AddType text/plain .phps

 

Uansett hvordan du gjør dette er det viktig at du bare gjør det på lagringsmappa til filene, hvis ikke vil andre kunn elese koden din. Hvis du bruker noen av kodene over er meningen at koden skal vise om noen laster opp en php-fil. Du kan jo evt. også gjøre slik at opplastning av php-filer ikke er tillat.

 

EDIT: Jeg er ikke sikker på hvor du skal legge disable.php, bare prøv deg frem.

Endret av Slettet+6132
Lenke til kommentar

eller mayb 'php_value engine off', den over med farger var jo god idê.. tenkte ikke på den når jeg gjorde dette for en stund siden :[ brukte text/plain som funka fint.. kanskje fjerne cgi/pl/phtml osv oxo? har du en komplett liste over 'bad' script extensions ell? hadde vært bra å ha.. =o

Lenke til kommentar
Gjest Slettet+6132
eller mayb 'php_value engine off', den over med farger var jo god idê.. tenkte ikke på den når jeg gjorde dette for en stund siden :[ brukte text/plain som funka fint.. kanskje fjerne cgi/pl/phtml osv oxo? har du en komplett liste over 'bad' script extensions ell? hadde vært bra å ha.. =o

5617944[/snapback]

 

Og enda bedre hadde det vært om du formulerte deg på bokmål. På dt forumet taztr vi ik på sms-språk vettu ;)

 

Fra spøk til alvor, cgi og pl trenger du vel egentlig ikke å blokke, siden de må ligge i cgi-mappa for å kunne kjøres (om jeg ikke husker helt feil. Men extensions du han sette til source er; hm, htm, html, phtml, shtml, xhtml, php, php3, php4, phps, tpl, inc, cgi, pl.

Lenke til kommentar

hvorfor ikke bare sikre opplastningsscriptet på siden din?

man MÅ ikke bruke move_uploaded_file()

 

er det snakk om bildefiler du vil ha lastet opp, tillat kun bildefiler!

er det snakk om filer som inneholder tekst:

1: les fila til string

2: Kjør htmlspecialchars() på den

3: Lagre strengen som ny fil

 

så er du sikra.

 

å kjøre perl uten videre er heller vanskelig da scriptene må ligge i cgi-bin mappa di. og jeg nekter å tru at du lar dem laste opp dit? om du i det hele tatt har en. default er bare en cgi-bin mappe som ligger rett under root mappa til apache

Endret av NH
Lenke til kommentar

en annen måte å gjøre det på er å ha en script som tar imot "requestes" for opplastede filer, og dersom filendelsen er .php eller .php3 etc. så få scriptet til å sende en text/html header. da blir siden vist med html formatering, bare at all php koden forsvinner. ellers kan du sende en text header sånn at man ser alt som om man hadde trykket på view-source.

Lenke til kommentar

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 konto

Logg inn

Har du allerede en konto? Logg inn her.

Logg inn nå
  • Hvem er aktive   0 medlemmer

    • Ingen innloggede medlemmer aktive
×
×
  • Opprett ny...