Bilder mit jpg endungen

Und das reicht dir …? Sind ja ganz schön niedrige Qualitätsansprüche.

Auf solche Fehler, die u.U. auch mal unabsichtlich passieren könnten, sollte der Nutzer entsprechend hingewiesen werden, und ihm die Möglichkeit gegeben werden, ein neues Bild hochzuladen.[/quote]
Ähm…
Welche Leute laden denn solche „Script-Bilder“ hoch? Hacker! Soll ich Hackern jetzt auch ncoh sagen, dass sie es mit einem anderen Weg versuchen soll? Oder freundlich darum bitten?
Der Standard-User (sogar DAUs) laden normale Bilder hoch. Und wenn Endung mit Mime-Type nicht zusammenpasst, kann man ja die Meldung geben. Und wenn beides normale Bilddateien sind, dann passt das Bild immer, solange es nicht von einem Hacker kommt. Und einem Hacker sage ich sicher nicht. „Upload fehlgeschlagen! Bitte versuchen Sie es erneut.“

Autsch - wieder einer, der glaubt, security by obscurity würde funktionieren …

/EOD für mich

Was hat das mit Security by obscurity zu tun? Ich muss den Hacker nur nicht darum bitten, es mit einem anderen Bild zu versuchen, oder? Der sieht doch so und so, dass das nicht geklappt hat. Das hat nichts mit SbO zu tun.

[quote=„asshare“]Was glaubts du warum man einen topic erstellt?

Wenn du nicht mit dem besten Lösungsweg einverstanden bist dann solltest du mal sagen was dein script besser kann (auser den ram besser zu belasten :ps: )?
[/quote]
Ich warte…

Definiere und besser und schlechter.
Ich sehe keinen nachteil.
Außerdem denke ich dass der funktionaufruf mehr ram braucht aus meine variante.

Denk dir was sinnvolles aus.

Ich glaub der Thread sollte closed werden
Der Typ regt mich langsam auf :motz:

Verbreite lieber Frieden Relax

Deine Lösung ist solange gut, bis ich dir ein ZIP-Archiv mit dem Content-Type image/jpeg sende.
Noch besser ist es, eine PHP-Datei mit dem Content-Type “image/jpeg” zu senden. Die rufe ich dann auf deinem Server auf und hab sofort Vollzugriff auf alles, was ich per PHP erreichen kann.
Das geht sogar mit dem Firefox mit nem kleinen Plugin…

[quote=„der_dodo“]Ich sehe keinen nachteil.[/quote]Nachteil Groß und ansonsten haben wir diesen schon öfters genannt. Die Daten sind unzuverlässig. Selbst wenn man dadurch keinen Schaden anrichten könnte, so hast du dadurch Daten müll auf der Platte.

Ich werde jetzt kleinlich aber du hast es verdient :ps:

@michi7x7
glaube das hab ich wie jeder vernünftige Webseiten Entwickler :smiley:

edit: ok habs atm net mehr drauf^^

Kann sowas auch passieren, wenn man die Endung einer Datei checkt? Also z.b. boese_datei.txt, text-dateien sind erlaubt, in wirklichkeit befindet sich aber php in der datei, kann der code aber nicht ausgeführt werden, right?

nur dateien mit der endung php,php4,php3 usw. werden vom server nach code durchsucht.

PHP ist auf C++ basiert oder?

Die funktionen von PHP sind also in C++,kommen also direkt in den Prozesser?!

Soweit ich weiß wars net C++ sondern C^^ Ist aber auch egal da es so oder so direkt ausgeführt werden kann. Nur was man selber in PHP Schreibt muss wie bei jeder Script-Sprache erst in Bytecode umgewandelt werden. Und es wird eben nur von PHP Interpretiert anstatt das es selber direkt den Prozessor anspricht. Darum sind Script-Sprachen auch langsamer. Wobei C++ auch schon teils nen Mix aus Script-Sprache und Hochsprache ist^^ C# sogar noch viel viel mehr.

getimagesize hat mit Sicherheit mit Abstand mehr Code… dazu kommt das es auf die Datei zugreifen muss um den Dateityp lesen zu können. Nur da es nativer Code ist, kann es mitunter letzten endes immer noch schneller sein als viel weniger in einer Script-Sprache. Aber wie gesagt… ich kanns nicht beurteilen. Einfachster weg wäre das ganze in ner Loop ca. 1000x auszuführen und zu gucken was schneller ist :smiley:

Wir sollten aber langsam mal zum ende kommen :wink:

Deswegen close :p

Schon vor 2 seiten sollte alles geklärt sein aber einer… :motz:

EDIT:Miro server zeit aktualisieren!!! :whata:

Okay ich will hier mal was klar stellen…

Punkto Sicherheit:
Wenn man die Dateiendung überprüft und den Mime-Type kann man sich sicher sein, dass dieser boshafte Code NICHT ausgeführt wird. Der Webserver öffnet auch nicht jede Datei und überprüft zuerst wie was wann wo, sondern, er sieht sich genau diese Dinge an. Die sind leicht aus den Dateien rauszulesen. Sonst gäbe es ein riesiges Performance-Problem.
Das ZIP-Archiv kann auch keinen Schaden anrichten, da es einfach nicht gespeichert wird, weil es kein Bild ist. Mittels imageCreateFromJPEG wird das Ganze ja sowieso überprüft. Und ohne die Funktion macht es auch keinen Sinn, den Mime-Type überhaupt auszulesen.

Punkto Performance:
Hast du schon mal hardwarenahe programmiert? Ich spreche von Microprozessoren. Da kommt es Befehl für Befehl darauf an. Und mir wird denke ich jeder zustimmen, wenn ich sage: getimagesize macht noch viel mehr als diese “simple überprüfung”. Das heißt (es werden auf hardwarenahe Ebene (Da von man nur bit und Byte verändern kann) mehr Befehle ausgeführt --> Höherer Arbeitsaufwand. Und glaub mir. Ich kann das beurteilen. Ich weiß, wie Microchips arbeiten. Ich bin in einer Schule für Elektrotechnik mit Microelektronik. Ich kenne das Von-Neumann-Prinzip, weiß wie die Transistoren zusammengeschalten werden müssen und weiß, wie die HEX-Code-Befehle ausgeführt werden.

Punkto Prozessor:
PHP basiert zwar auf C(++) und ist mit C(++) programmiert. Aber er wird trotzdem nur von einem C(++)-Programm ausgeführt. Dieses Programm wird von dem Betriebssystem ausgeführt. Das ist grundstzlich in Assembler geschreben (Microprozessoren können ncihts anders) Assembler bietet sozusagen den “Interpreter” von Programmen.
PHP -> C(++) -> Assembler -> HEX-Codes -> Ausführung

Punkto Datenmüll:
Wie viele Leute schicken in dieser weise schadhaft manipulierte Daten? Nur Hacker. Und das ist die Minderheit. Und wenn der Hacker nicht aufräumt, hab ich immerhin nen anhaltspunkt, dass er es versucht hat. Also ist dieser “Müll” nicht schlimm. Der Speicher-Verbrauch ist gleich, weil beides abgespeichert wird, wenn es durch die “Schleuse” kommt.

Und bevor man nach einem “closed” ruft, lässt man andere sich zuerst noch verteidigen…

Falsch, der Linux-Kernel kann MIME-Typen je nach Inhalt erkennen. Wenn <?php als Indikator für PHP registiert ist, bekommit die Datei den MIME-Typ application/php zugewiesen und wird vom Server geparst.
Das ist aber normalerweise (auch aus Sicherheitsgründen) nicht der Fall.

Der PHP-Parser ist in C geschrieben

Nein wiso?

Aha und was ist auser dem 0,000*** sec zeit gewinn noch so toll an deinem script?

Du hast behauptet, dass dein Script schneller ist… Ich hab dir nur gesagt, dass es das definitiv nicht ist.
Ich habe auch nie gesagt dass meine Lösung besser ist. Aber es ist AUCH eine Lösung.
Und das tolle am programmieren ist doch, dass man seine Probleme auf verschiedene Weisen lösen kann. Man muss nicht immer nur einen Weg gehen, nur weil 5 Leute meinen, er wäre besser.

Wo steht das es mein script ist???

Wenn es eine bessere Lösung gibt die zudem ‚newbie‘ freundlich ist sollte man diese auch empfehlen :wink:

Bis jetzt stand in den letzen 20 Post nur kram der eigentlich schon geklärt sein sollte wenn eine Person seinen ‚schlechteren oder gleichguten‘ Lösungsvorschlag nicht verteidigen würde. :stress:

Es ist der Lösungsansatz, den du gewählt hast, oder?

Diese ‚Anführungszeichen‘ sind unnötig.
Naja… wenn du nicht meine Lösungsansätze nicht ‚niederflamen‘ würdest, dann müsste ich mich nicht verteidigen. Ich lass meine Programmier-Fähigkeiten (ja, spar dir dein Kommentar) nicht einfach so von irgendjemandem, der noch nichts von mir gesehen hat nicht fertig machen.
du hast mir aber noch immer nicht begründet, warum mein Lösungsansatz ‚schlechter‘ sein sollte. Er funktioniert genau so. Bis jetzt hast du jeden meiner Fakten einfach ignoriert.

Ich habe nie gesagt, dass ein Ansatz besser wäre, als ein anderer. Er ist anders.
Und etwas Rhetorik und politische Korrektheit solltest du dir vielleicht auch angewöhnen, wenn du schon nicht mit deinen technischen Fähigkeiten glänzt. Der einzige konstruktive Beitrag deiner Seite war bis jetzt nur, das Wort getimagesize in den Raum zu werfen.

Denkt bei eurer Diskussion dran: Immer cool bleiben :wink:

„Ich darf keine doppelte Verneinung nicht benutzen“ :ps: