bestand uploaden .

  • Onderwerp starter Onderwerp starter baws
  • Startdatum Startdatum
Status
Niet open voor verdere reacties.

baws

Terugkerende gebruiker
Lid geworden
9 apr 2010
Berichten
1.258
Hallo,

ik ben de php cursu van w3 schools aan het leren, en nu ben ik bij het stukje uploaden van bestanden.
hier geven ze de volgende code:

PHP:
<?php
if ((($_FILES["file"]["type"] == "image/gif")
|| ($_FILES["file"]["type"] == "image/jpeg")
|| ($_FILES["file"]["type"] == "image/pjpeg"))
&& ($_FILES["file"]["size"] < 20000))
  {
  if ($_FILES["file"]["error"] > 0)
    {
    echo "Return Code: " . $_FILES["file"]["error"] . "<br />";
    }
  else
    {
    echo "Upload: " . $_FILES["file"]["name"] . "<br />";
    echo "Type: " . $_FILES["file"]["type"] . "<br />";
    echo "Size: " . ($_FILES["file"]["size"] / 1024) . " Kb<br />";
    echo "Temp file: " . $_FILES["file"]["tmp_name"] . "<br />";

    if (file_exists("upload/" . $_FILES["file"]["name"]))
      {
      echo $_FILES["file"]["name"] . " already exists. ";
      }
    else
      {
      move_uploaded_file($_FILES["file"]["tmp_name"],
      "upload/" . $_FILES["file"]["name"]);
      echo "Stored in: " . "upload/" . $_FILES["file"]["name"];
      }
    }
  }
else
  {
  echo "Invalid file";
  }
?>

als ik nu iets wil uploaden krijg ik steeds de waarschuwing


Warning: move_uploaded_file(upload/Celtic_B.jpg) [function.move-uploaded-file]: failed to open stream: No such file or directory in {mijn domein)/public_html/script/upload_file.php on line 25

Warning: move_uploaded_file() [function.move-uploaded-file]: Unable to move '/tmp/php6zYMEM' to 'upload/Celtic_B.jpg' in {mijn domein)/public_html/script/upload_file.php on line 25
Stored in: upload/Celtic_B.jpg

ik snap dat het te maken heeft dat de map niet bestaat, maar als ik een ander map kies die wel bestaat krijg ik nog dezelfde melding
 
Bekend script :-)


Je moet die map upload wel zelf aanmaken. Dat hij het met een andere map niet doet is raar.
Staat de host wel toe dat je bestanden mag openen/bewerken?
 
ah inderdaar, ik had e bestandstrechten nog op 755 staat daardoor was er geen recht, nu staat het op 777 en werkt het wel.
heb de locatie ook aangepast naar ../upload weet niet of dat ook scheelt.
 
Beste baws,

Alleen controlleren op $_FILE["file"]["type"] is niet veilig !. Omdat het vrij simpel is de type mee te geven in een HTTP request. Met andere
woorden, een hacker kan een php bestand uploaden en mee geven in de headers dat het om een image gaat waardoor jou upload script nu
het bestand upload.

En het is ook niet veilig om $_FILES["file"]["name"] te gebruiken om het bestand op te slaan. Niet alleen maak je hierdoor vele manieren
mogelijk waardoor je gehackt kan worden, je ondersteunt hiermee ook een veel grotere fout. Hierdoor is het namelijk mogelijk bestanden
op de server te overschrijven, waardoor het mogelijk is deze te laten crashen en zo je website offline te halen. Dit is mogelijk door slashes (/)
toe te voegen aan de bestandsnaam waardoor deze automatisch een directorys lager gaat. Dus ALTIJD de naam van het bestand veranderen
en het liefst niet een folder zetten met de naam "upload" omdat de hackers deze naam als eerst zullen proberen.

Meer over de beveiliging van upload forms,
http://www.acunetix.com/websitesecurity/upload-forms-threat.htm
 
Laatst bewerkt:
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan