Heim >Datenbank >MySQL-Tutorial >Wie kann ich Dateitypen beim Hochladen von PHP-Dateien sicher einschränken?

Wie kann ich Dateitypen beim Hochladen von PHP-Dateien sicher einschränken?

DDD
DDDOriginal
2024-11-03 03:13:02483Durchsuche

How to Securely Restrict File Types in PHP File Uploads?

PHP-Datei-Upload: Dateitypen einschränken

Beim Hochladen von Dateien ist es wichtig, den Typ und die Größe der hochgeladenen Datei zu überprüfen, um Sicherheit und Sicherheit zu gewährleisten Aufrechterhaltung der beabsichtigten Funktionalität. Der bereitgestellte Code zielt darauf ab, die Dateierweiterung, den Typ und die Größe zu überprüfen. Es gibt jedoch einige Probleme.

Probleme mit dem Originalcode:

  • Der Dateityp wird nicht erzwungen; Es erlaubt Dateien mit nicht autorisierten Erweiterungen (z. B. TXT).
  • Überprüft die Dateigröße nicht korrekt.

Lösung:

Um diese Probleme zu lösen, können wir die MIME-Typen für die Dateivalidierung und separate Prüfungen der Größe verwenden Grenze.

Aktualisierter Code:

<code class="php">function allowed_file() {
  // Allowed mime types
  $allowed = array('application/doc', 'application/pdf', 'another/type');

  // Validate file type using mime type
  if (in_array($_FILES['resume']['type'], $allowed) && in_array($_FILES['reference']['type'], $allowed)) {

    // Validate file size
    if ($_FILES["resume"]["size"] < 400000 && $_FILES["reference"]["size"] < 400000) {

      // Files are allowed; proceed with upload process...
    }
  }
}</code>

Erklärung:

  • Wir definieren ein Array zulässiger MIME Typen.
  • Für jede hochgeladene Datei prüfen wir, ob ihr MIME-Typ zulässig ist Array.
  • Nach der Validierung der Dateitypen führen wir Größenprüfungen durch, um sicherzustellen, dass sie unter dem angegebenen Grenzwert liegen.
  • Wenn alle Validierungen erfolgreich sind, können wir mit dem Datei-Upload-Prozess fortfahren, z Bewegen zum gewünschten Ziel.

Das obige ist der detaillierte Inhalt vonWie kann ich Dateitypen beim Hochladen von PHP-Dateien sicher einschränken?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn