Gå til innhold

.htaccess: skru av PHP i mappa?


Anbefalte innlegg

Skrevet

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...?

Videoannonse
Annonse
Skrevet (endret)

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
Skrevet

tja, tror han vil ha muligheten for at folk skal kunne laste opp php filer bare at de ikke skal kunne kjøre dem. hvorfor ikke bare legge til .txt etter .php filer?

Skrevet

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

Gjest Slettet+6132
Skrevet (endret)

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
Skrevet

Er det ikke mye bedere med:

AddType application/x-httpd-php-source .php
AddType application/x-httpd-php-source .php3
AddType application/x-httpd-php-source .php4

Da vil den vise koden i farger ;)

Gjest Slettet+6132
Skrevet
Er det ikke mye bedere med:

Da vil den vise koden i farger ;)

5611681[/snapback]

 

Det er også en mulighet ja...

Skrevet

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

Gjest Slettet+6132
Skrevet
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.

Skrevet (endret)

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
Skrevet

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.

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å
×
×
  • Opprett ny...