AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Thema durchsuchen
Ansicht
Themen-Optionen

PHP Script zum Dateihash berechnen

Ein Thema von Luckie · begonnen am 24. Mai 2012 · letzter Beitrag vom 24. Mai 2012
Antwort Antwort
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#1

PHP Script zum Dateihash berechnen

  Alt 24. Mai 2012, 01:04
Ich brauchte jetzt mal schnell eine Anwendung, die Dateihashes berechent. Also hab eich mir ein PHP Script geschrieben:
Code:
<?php
   
   /*
      Projekt : -
      Date    : 2012-05-23
      Author    : Michael Puff, http://michael-puff.de
      MD5, SHA1 und CRC32 Dateihashes
   */
   
   ini_set('track_errors', 1);
   
   $action = $_GET['action'];
   $filename = $_FILES['file'];
   $dir = $_SERVER["DOCUMENT_ROOT"]."/Programmierung/DaddysLittleHelpers/";

   function showForm() {
      echo "<hmtl>\n";
      echo "<body>\n";
      echo "<strong>MD5 und SHA1 Dateihashes</strong><br><br>\n";
      echo "<form enctype=\"multipart/form-data\" action=\"FileHash.php?action=hash\" method=\"post\">\n";
      echo "<input type=\"hidden\" name=\"MAX_FILE_SIZE\" value=\"3000000\">\n";
      echo "<input name=\"file\" type=\"file\" size=150><br>\n";
      echo "<input type=\"submit\" value=\"Hashes erzeugen\">\n";
      echo "</form>\n";
      echo "</body>\n";
      echo "</html>\n";
   }
   
   function upload($dir, $file) {
      global $errorMsg;
      $ret = move_uploaded_file($file['tmp_name'], $dir.$file['name']);
      $errorMsg = $php_errormsg;
      return $ret;
   }
   
   echo "<a href=\".\">Zurück</a><br><br>\n";
   
   if (empty($action)) {
      showForm();
   }
   else {
      if (upload($dir, $filename)) {
         echo "<strong>Dateiname: ".$filename['name']."</strong><br>\n";
         echo "<pre>MD5 : ".md5_file($dir.$filename['name'])."\n";
         echo "SHA1: ".sha1_file($dir.$filename['name'])."</pre>\n";
         if (!unlink($dir.$filename['name'])) {
            echo "Datei ".$filename['name']." konnte nicht gelöscht werden.\n";
         }
      }
      else
      {
         echo "Es ist ein Fehler beim Hochladen der Datei <i>".$filename['name']."</i> aufgetreten.<br>".$errorMsg;
      }
   }

?>
Kann mir da einer irgendwie Code oder Dateien auf meinen Webspace einschmuggeln?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#2

AW: PHP Script zum Dateihash berechnen

  Alt 24. Mai 2012, 01:22
Es könnte definitiv nicht schaden, den Dateinamen zu escapen, auch wenn mir keine konkreter Angriff einfallen würde.

IMHO kann man mit dem Skript beliebige Dateien in
Code:
$_SERVER["DOCUMENT_ROOT"]."/Programmierung/DaddysLittleHelpers/"
löschen (siehe Notes von move_uploaded_file()).

Außerdem finde ich es merkwürdig, dass du die Datei verschiebst, um sie dann zu löschen. Wäre ein Check mit is_uploaded_file() und ein darauf folgendes Hashen (und löschen) nicht einfacher?
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#3

AW: PHP Script zum Dateihash berechnen

  Alt 24. Mai 2012, 01:28
Mist daran habe ich nicht gedacht. Es würde auch ohne verschieben gehen?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#4

AW: PHP Script zum Dateihash berechnen

  Alt 24. Mai 2012, 02:31
Laut Stackoverflow funktionierts.

Aber is_uploaded_file() kann nicht schaden (sollte nicht so viel Kosten wie das Kopieren) und Löschen musst du die temporäre Datei afaik trotzdem.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#5

AW: PHP Script zum Dateihash berechnen

  Alt 24. Mai 2012, 09:14
Ok, am liebsten wäre es mir dann, wenn ich die hochgeladene Datei nicht verschieben würde. Gibt es denn eine Funktion, die die Datei in den temporären Ordner hochläd, aber nicht verschiebt?
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#6

AW: PHP Script zum Dateihash berechnen

  Alt 24. Mai 2012, 12:12
Manchmal stellst du dich aber auch an
Zitat von http://stackoverflow.com/a/5572126:
You can use md5_file ou sha1_file function. For example, if your post variable is filevar:
Code:
$myhash = md5_file($_FILES['filevar']['tmp_name']);
$_FILES['filevar']['tmp_name'] ist schon ein Dateiname einer temporären Datei (die du im Script dann entweder verschiebst oder löschst).
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#7

AW: PHP Script zum Dateihash berechnen

  Alt 24. Mai 2012, 13:03
Manchmal stellst du dich aber auch an
Ich hatte heute mein Snikers noch nicht. Dank dir.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#8

AW: PHP Script zum Dateihash berechnen

  Alt 24. Mai 2012, 13:24
Hm, dann bekomme ich die fehlermeldung:
Code:
Warning: md5_file(): Filename cannot be empty in /var/www/l3s11195/html/Programmierung/DaddysLittleHelpers/FileHash.php on line 38
Ich habe es auch schon so
md5_file($_FILES['tmp_name']) versucht, mit dem gleichen Ergebnis.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Benutzerbild von BUG
BUG

Registriert seit: 4. Dez 2003
Ort: Cottbus
2.094 Beiträge
 
#9

AW: PHP Script zum Dateihash berechnen

  Alt 24. Mai 2012, 13:31
"filevar" sollte deinem "file" entsprechen, also könnte es so gehen:
PHP-Quellcode:
md5_file($filename['tmp_name']);
// oder:
md5_file($_FILES['file']['tmp_name']);
  Mit Zitat antworten Zitat
Benutzerbild von Luckie
Luckie

Registriert seit: 29. Mai 2002
37.621 Beiträge
 
Delphi 2006 Professional
 
#10

AW: PHP Script zum Dateihash berechnen

  Alt 24. Mai 2012, 13:42
Ach so. OK, dann geht es.
Michael
Ein Teil meines Codes würde euch verunsichern.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 23:33 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz