Moin Sven!
Diese Prüfung des Mimetyps ist unsinnig. Die Angabe stammt vom hochladenden HTTP-Client - das kann ein handelsüblicher Browser sein, aber genausogut ein manipulierender Angreifer, der deine Prüfung auf korrekten Mimetyp einfach umgeht, indem er den gewünschten Typ sendet, aber trotzdem "böse Dateiinhalte".
Stimmt. Ich überprüfe nun die Dateiendung der hochgeladenen Datei. Ist diese ~= .lua wird die Verarbeitung abgebrochen. Zusätzlich habe ich in meine .htaccess ein
<Files *.lua>
Order allow,deny
Deny from all
</Files>
eingetragen. Ist das jetzt ein ausreichender Schutz?
Dateien hochladen zu lassen ist noch nicht wirklich gefährlich. Spannend wird es, wenn die Dateien danach dann genutzt werden sollen.
Ja, das sollte bei allen Vorkehrungen gegen möglichen Missbrauch noch möglich sein. ;-)
Welche potentiellen Gefahren stecken in der Sache?
Es kommt sehr darauf an, was du mit den hochgeladenen Dateien machst, und wie exakt du die Dateien prüfst, bevor du das machst.
Na ja, wie schon erwähnt "durchsuche" ich die Datei, die ich zuvor in einen String eingelesen habe, ob die erforderlichen Inhalte vorhanden sind. Wenn ja, "picke" ich diese heraus, verarbeite sie noch ein wenig, um sie dann zu speichern (Cookies) und den Benutzer auf eine andere Seite (Ausgangsseite) weiterzuleiten, die die Informationen aus den Cookies entsprechend verarbeitet. (Ja, Cookies sind "zwingend" erforderlich für die Benutzung der Website!)
Quellcodedateien einer Programmiersprache hochzuladen ist erstmal eher harmlos - sofern du nicht beabsichtigst, den Code zu kompilieren und auszuführen.
Nein, das habe ich nicht vor.
Im übrigen vielen Dank für deine Auflistung möglicher Gefahrenquellen. Denn um eine möglichst sichere Anwendung zu stricken, muss man ja erstmal um diese wissen, um wirkungsvolle und umfassende "Gegenmaßnahmen" treffen zu können. Und genau da hapert es bei mir (u.a.) - auf die meisten Böswilligkeiten so mancher User käme ich nie im Leben.
Dank & Gruß
Gunther