Upload script met Chmod 777 map

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Arne

arne

20/01/2009 17:00:00
Quote Anchor link
Is dit gevaarlijk?

Hoe kan ik dit beter aanpakken want het feit via een blader knop een plaatje te kunnen uploaden heb ik nodig! Maar moet wel helemaal veilig zijn tegen hackers en virussen..

Kan iemand me dit uitleggen?
 
PHP hulp

PHP hulp

04/05/2024 20:55:18
 
Robert Deiman

Robert Deiman

20/01/2009 17:03:00
Quote Anchor link
@Arne

Het enige wat CHMOD doet is regelen of iemand lees- en / of schrijfrechten heeft. Je zal het type bestand, de inhoud van het bestand (voor zover mogelijk) moeten controleren bij het uploaden.
Voor het uploaden kan je niets doen, dus je zal daar e.e.a. aan controle in moeten bouwen. Het begint al met een mime-type, (al is die ook te faken!) maar ik geloof dat iemand hier bezig was met iets van een viruscontrole bij upload?
 
Arjan Kapteijn

Arjan Kapteijn

20/01/2009 17:11:00
Quote Anchor link
Naast het mimetype is het ook verstandig om getimagesize te kijken naar de dimensies van een afbeelding. Een mimetype valt wat eenvoudiger te faken dan de breedte en hoogte. Check ook op 'achterlijke' groottes, om een buffer overflow te voorkomen.

Daarnaast kun je een virusscanner inbouwen, zoals ik hier gedaan heb. Echter heb je dan wel een eigen server nodig.
 
Arne

arne

20/01/2009 17:21:00
Quote Anchor link
Ik heb een controle voor extensies inderdaad. Ook image size heb ik. Al vraag ik me af wat is een redelijke size hiervoor? Virussen, worms en malicious scripts zijn toch ook al heel klein van size?

Kan iemand van buitenaf niets met chmod 777 schrijf en execute rechten zolang hij de ftp gegevens niet heeft?

Dan een laatste vraag hoe check ik op de image afmetingen?
Gewijzigd op 01/01/1970 01:00:00 door arne
 
- Ariën  -
Beheerder

- Ariën -

20/01/2009 17:22:00
 
Arjan Kapteijn

Arjan Kapteijn

20/01/2009 17:23:00
Quote Anchor link
En als je slim bent zet je die upload map buiten je webroot.
 
Arne

arne

20/01/2009 17:25:00
Quote Anchor link
Arjan Kapteijn schreef op 20.01.2009 17:23:
En als je slim bent zet je die upload map buiten je webroot.


Dat heb ik inderdaad gedaan. En er staat niets anders in de map dan die plaatjes die worden geupload.

Volgens mij is het dan wel redelijk veilig?

Het is toch niet te benaderen buiten het script om?
Gewijzigd op 01/01/1970 01:00:00 door arne
 
Arjan Kapteijn

Arjan Kapteijn

20/01/2009 17:28:00
Quote Anchor link
Lastig te beoordelen, voor hetzelfde geld heb jij ergens een slecht script staan waarmee ik kan spelen met de $_GET waardes en 'terug kan bladeren' naar je uploads map.

Als je slim bent laat je je huidige script ook even controleren door iemand die er verstand van heeft. Je knikt namelijk wel overal ja op maar voor hetzelfde geld heb je iets verkeerd geintepreteerd. Jij begint namelijk over de bestandsgrootte (aantal MB), ik heb het overal de afbeeldingsgrootte (aantal pixels).
 
Arne

arne

21/01/2009 16:43:00
Quote Anchor link
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
<?

global $_FILES;

$filename_picture1 = $_FILES['picture1']['name'];  

$allow[0] = "jpg";
$allow[1] = "gif";
$allow[2] = "bmp";
$allow[3] = "png";
// $allow[3] = "exe"; enz.

    $uploadname = $_FILES['picture1']['name'];

$extentie = substr($uploadname, -3);

for ($i = 0; $i < count($allow); $i++)
{

    if ($extentie == $allow[$i])
    {

        $extentie_check = "ok";
        $i = count($allow) + 5; // om loop te beindigen
    }
}


if ($extentie_check)
{

    if (is_uploaded_file($_FILES['picture1']['tmp_name'])) {  
        move_uploaded_file($_FILES['picture1']['tmp_name'], "uploads/" . $filename_picture1);  
    
 ?>


Dat is het php gedeelte.

Verder gewoon html form met method post en action test.php

Nog iets heel geks. Ik snap niet helemaal ik wil die regel met $uploadname = $_FILES['picture1']['name'];

weghalen en gewoon zorgen dat hij rechtstreeks de bestandsnaam pakt.

Echter als ik dat weghaal en de variabele verderop in het script verander naar $filename_picture1 werkt het niet meer...
Gewijzigd op 01/01/1970 01:00:00 door arne
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.