Julius: Zum SelfHTML-Wiki

Beitrag lesen

Hallo Jörg,

ich denke, bevor wir uns hier etwas Eigenes einfallen lassen, sollten wir uns nach anerkannten Standards zu richten, in diesem Fall die der PHP-FIG. Ob ich das konstant eingehalten habe, müsste ich allerdings noch mal überprüfen.

Als „unschön“ markiere ich, dass 'COOKIE_NAME'. Große Buchstaben und Unterstriche als Trenner sind Merkmale von Namen für Konstanten und Variablen, die von PHP selbst belegt werden.

So sieht die PHP-Doku das:
„By convention, constant identifiers are always uppercase.“

PSR-1 sieht das für Klassenkonstanten ähnlich.

Auch könnte man vorschreiben/empfehlen, bei Arumentlistenbegrenzern (,), Listenbegrenzern [, ], meinetwegen auch {, } zwischen diesen und dem Inhalt ein Leerzeichen zu setzen:

if ( ! isset( $_COOKIE[ CookieName ] ) ) {

Das sind ein paar zu viele Leerzeichen für meinen Geschmack. Ich denke, da sollte man sich ebenfalls an den Regeln der PHP-FIG richten, weiß selber gerade nicht, was die konkret vorschreiben.

Was davon gewählt wird ist mir ebenso egal - aber man sollte sich einigen, denn gegenwärtig hat der im Wiki präsentierte Code eine Außenwirkung, die mit dem erhobenen Qualitätsanspruch nicht übereinstimmt.

Das unterstütze ich, war bisher zwar nicht Fokus, aber das ist dennoch sinnvoll.

Kommen wir zum inhaltlichen Aspekten. Wie schon von anderen erwähnt wurde werfen manche Artikel Äpfel, Eier und Rüben durcheinander, was erst die Übersicht und dann deren Sinn verwässert und offenbar sogar die Autoren auf Ab- und Umwege führt - welche durchaus mit der Threadtrift hier im Forum vergleichbar sind.

  • z.B. das Dateiupload-Skript.

Das ist kein Skript, sondern eine Einführung, vielleicht auch ein bisschen ein Tutorial. Es ist bewusst kein komplett fertiges Skript drin, sondern nur Ansätze, damit sich der Leser selbst Gedanken machen muss, um es an seine Gegebenheiten anzupassen. Ein Dateiupload-Skript ist nichts, das man einfach so auf seinen Server schiebt, denn es erfordert Wissen im Bereich der IT-Sicherheit, das der übliche Programmiereinsteiger nicht hat (ich spreche aus eigener Erfahrung). Der blutige Einsteiger lernt erst einmal ordentlich PHP und der Fortgeschrittene sieht in dem Artikel einen Ansatz, wie man einen Dateiupload implementiert.
Vielleicht wirkt es aus obigen Gründen auf dich wie „Äpfel, Eier und Rüben“.

Darin hat, so sehe ich das, die Prüfung, ob es sich um ein Bild handelt, viel zu viel Raum. Das würde ich konsequent abtrennen und zwar einmal in „Dateiupload“ und dort z.B. die Größenbegrenzung - und wie man diese korrekt begrenzt - genauer besprechen.

Im Artikel wird beschrieben, welche Werte dafür in welcher Weise wirken. Wie man sie letztlich konkret setzt, steht im PHP-Manual und ist letztlich auch vom konkreten Setup abhängig. Da in die Tiefe zu gehen, erschien mir unzweckmäßig.

z.B. bei der Sicherheit: Ich würde dazu neigen, jedes Bild mit den imagecreatefrom*-Funktionen aus der temporären Datei zu kopieren.

Da auch das keinen 100%igen Schutz bietet, ich diese Sicherheitslücken eher als solche in der Server-Fehlkonfiguration (nosniff-Header, Ausführen von PHP-Code in Dateien mit Endungen von Bilddateien) sehe, habe ich beim Schreiben des Artikels davon abgesehen, das zu integrieren. Zudem erhöht man durch die Benutzung der GDlib die Angriffsfläche (das erwähntest du ja bereits). Insgesamt halte ich das für die Komplexität erhöhendes Voodoo, das mehr Sicherheit verspricht, aber in der Summe nicht liefert.

Und dabei bzw. danach womöglich auch richtig zu drehen, was vor ein paar Tagen Thema war, ferner Thumbnails herzustellen und die Größe anpassen.

Das sollte definitiv ergänzt werden, vielleicht in einem anderen Artikel, der nur diese Thematiken abhandelt. Sonst wird es unübersichtlich.
Meintest du nicht mal, dass du gerade Zeit hättest?

Gruß
Julius