Da ich es nie benutze, und es mir vor 1.5 Jahren einmal angeschaut habe, habe ich es eben vor 3 Minuten runtergeladen und einmal in folgende Datei geschaut:
/admin/inc/admin.inc.php
Es hat 30 Sekunden gedauert um folgendes zu erkennen:
1. Kein MVC
2. Englisch Deutsche Gemischte Dateinamen
3. Keine / Kaum Klassen vorhanden
4. Kein OOP
5. Kein PHP5
6. Kein PDO
7. HTML & PHP gemischt und nicht sauber von einander getrennt
Vor 1.5 Jahren kam zu den Sach noch hinzu:
Sicherheitsluecken ohne Ende.
Wie das heute mit version 3.9.X ist weiss ich nicht, aber wenn bei version 3.9 immer noch nicht mit php5, pdo und generell objekt orientierter programmierung auf einem vernuenftigen MVC model gearbeitet wird, kann das doch nicht akzeptabel sein. Es ist volllkommen egal, wie benutzerfreundlich es ist oder nicht, wordpress war auch nicht gut programmiert, abgesehen davon dass windows auch nicht gut programmiert worden ist am anfang, kann man heut zu tage einfach mehr erwarten und muss man auch mehr. Die beiden Beispiele wordpress und windows sind ein wenig anders zu betrachten, da diese revulotionaere produkte, ob frei oder kostenpflichtig, sind, die, unter dem prinzip entstanden sind: Egal ob gut oder schlecht: Erster zu sein macht den Unterschied.
MacOS war damals schon besser als Windows, beide hatten einen desktop und maus und waren damit eine revolution, windows hat bill gates aber zum milliardaer gemacht, weil es vor macos rauskam - wer nicht lesen will kann auch den film "Pirates of Silicon Valley" anschaun, in dem die Geschichte von Bill Gates und Steve Jobs erklaert wird.
B2T:
Heut zu tage kann man nicht einfach irgendeine kacke produzieren und hoffen, dass alles gut laeuft. Webseiten sind weit aus komplizierter als sie vor 10 Jahren waren. Programmiersprachen entwickeln sich und das mit GUTEM GRUND! Also warum nicht auch die vorteile nutzen? Warum das leben schwer machen? Und hinzu kommt, dass es ca 1mrd CMS pro Erdenbewohner gibt, anders gesagt: Die Konkurrenz ist groß. Also warum Anfaenger "fehler" machen wie:
HTML und PHP in einer Datei warum muss sowas in einer Datei stehen:
|
Quellcode
|
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
|
echo '<div class="inbox" style="padding-bottom: 10px;">';
echo '<h1>'.check_umlaute($edit['benutzername']).' bearbeiten:</h1>';
echo '<hr />';
echo '<form name="edit" method="post" action="?seite=admin&action=edit&id='.$_GET['id'].'&do=speichern">';
echo '<table class="getTabForm" cellspacing="0" cellpadding="0" summary="text">';
echo '<tr>';
echo '<td><h2>Benutzername</h2><h3>Wählen Sie den gewünschten Benutzernamen.</h3></td>';
echo '<td width="220"><input type="text" name="benutzername" value="'.$benutzername.'" class="formular" style="width: 220px;" maxlength="20" /></td>';
echo '</tr>';
echo '<tr>';
echo '<td><h2>Vor- & Nachname</h2><h3>Bitte geben Sie den Vor- und Nachnamen ein.</h3></td>';
echo '<td width="220"><input type="text" name="name" value="'.$name.'" class="formular" style="width: 220px;" maxlength="30" /></td>';
echo '</tr>';
echo '<tr>';
echo '<td><h2>eMail Adresse</h2><h3>Bitte geben Sie die eMail Adresse des Administrators ein.</h3></td>';
echo '<td width="220"><input type="text" name="email" value="'.$email.'" class="formular" style="width: 220px;" maxlength="30" /></td>';
echo '</tr>';
echo '<tr><td><h2>Passwort</h2><h3>Bitte geben Sie ein gewünschtes Passwort ein.</h3></td>';
echo '<td width="220"><input type="password" name="passwort" value="'.$passwort.'" class="formular" style="width: 220px;" maxlength="30" /></td>';
echo '</tr>';
echo '<tr>';
echo '<td><h2>Passwort bestätigen</h2><h3>Bitte bestätigen Sie das gewünschte Passwort.</h3></td>';
echo '<td width="220"><input type="password" name="passwort2" value="'.$passwort2.'" class="formular" style="width: 220px;" maxlength="30" /></td>';
echo '</tr>';
echo '</table>';
|
Da kriegt doch jeder ordentliche Entwickler nen Kotzkrampf!!!!
Sorry, aber das ist PERL Style ausm letzten Jahrhundert.
Durch Zufall einfach eine Datei aufgerufen um ein weiteres Beispiel von schlechten Code zu zeigen:
/admin/inc/index.php
|
Quellcode
|
1
2
3
4
5
|
<li><a href="?seite=lizenz" <?php if ($_GET['seite'] == "lizenz") { echo 'class="lizenz_aktiv"'; } else { echo 'class="lizenz"'; } ?> title="Lizenz Verwaltung"><span>Lizenz Verwaltung</span></a></li>
<li><a href="?seite=update" <?php if ($_GET['seite'] == "update") { echo 'class="update_aktiv"'; } else { echo 'class="update"'; } ?> title="Update & Patch"><span>Update & Patch</span></a></li>
<li><a href="?seite=backup" <?php if ($_GET['seite'] == "backup") { echo 'class="backup_aktiv"'; } else { echo 'class="backup"'; } ?> title="Backup anlegen"><span>Backup</span></a></li>
<li><a href="?seite=hilfe" <?php if ($_GET['seite'] == "hilfe") { echo 'class="hilfe_aktiv"'; } else { echo 'class="hilfe"'; } ?> title="Hilfe & Support"><span>Hilfe & Support</span></a></li>
<li><a href="../index.php?logout" onclick="return abmelden();" class="abmelden" title="Abmelden"><span>Abmelden</span></a></li>
|
Warum nicht class="aktiv" oder besser gesagt: active oder was weiss ich was
Warum muss es eine "unique"-Class sein. ? Ich habe mir das CSS und weitere aufrufe der Klassennamen nicht angeschaut, geht man aber von diesem Codeausschnit aus:
1. Class prinzip nicht verstanden
2. WHAT THE FUCK ?
Zurueck zu dem Thema Sicherheit:
Ich habe keine Zeit und keine Lust Sicherheitsluecken aufzudecken, aber wenn ich Sachen lese wie:
|
Quellcode
|
1
2
3
|
if (file_exists("../../includes/module/".$_GET['modul']."/".$_GET['datei'].".inc.php")) {
include "../../includes/module/".$_GET['modul']."/".$_GET['datei'].".inc.php";
|
Kann ich nur empfehlen beim Einsatz vom CMS:
http://www.pampers.de/de_DE/home
und
http://www.yopi.de/Penaten_Baby_Oel
Fazit:
CMS2Day: Sehr gefaehrliches Halbwissen zusammengewuerfelt.
Aber so ist das nunmal:
Faulheit siegt, Einfachkeit siegt, Dummheit wird es immer geben
c'est la vie
Schoene Grueße ( :