Allgemeine Programmierrichtlinien - Druckversion +- MyBB.de Forum (https://www.mybb.de/forum) +-- Forum: Sonstiges (https://www.mybb.de/forum/forum-1.html) +--- Forum: Programmierung (https://www.mybb.de/forum/forum-32.html) +--- Thema: Allgemeine Programmierrichtlinien (/thread-17796.html) |
Allgemeine Programmierrichtlinien - thebod - 01.02.2011 Moin moin, ich dachte ich schreibe mal ein paar allgemeine Richtlinien zusammen, damit auch etwas unerfahrene Programmierer wissen, wie man mit größeren Projekten wie Communitys umzugehen hat. Ich hoffe euch damit zu helfen und zu unterstützen bei euren Projekten! Leider ließt man immer Dinge wie "ich schau mir das mal an, wird schon nicht so schwer sein", oder "das bisschen PHP wird schon hinhauen" - das ist nicht so. Es gibt 3 Hauptpunkte, die man immer beachten sollte: - Sauberer Code, Kommentare helfen jedem, auch wenns nervt. Ebenso klare Dateinamen, Dateistrukturen, und Strukturen im Code (siehe z.B: MVC) - Update-/Erweiterbarkeit, Core-Files sind Core-Files. Wer daran rumschraubt sollte das dokumentieren und Kopien der Originale anfertigen. Das sind sehr kritische Änderungen, die schnell mal alles kaputt machen können. - Sicherheit, man muss sich etwas informieren was XSS, CSRF, SQL-Injection, RFI, etc... ist, sonst baut man sich Zwangsläufig Sicherheitslücken ein. Das ist in etwa so, wie wenn man sich selber einen Kamin ins Wohnzimmer baut - wer kennt sich schon mit den Brandschutzbedingungen genau aus? Ein paar Sachen, die ich etwas genauer erklären möchte: MyBB ist noch recht überschaubar vom Code, das hat man bei Systemen wie Typo3 oder Magento schon nichtmehr. Nichtsdestotrotz muss auch bei MyBB gut dokumentiert werden, wie man sein Forum strukturiert, was man ändert, etc. Nehmen wir an, ihr baut für eure BlinkenLightsFooBarExtension im Funktions-Core von MyBB 1.6.0 in Zeile 728 etwas um, whatever, ein zusätzliches ":foo:" in der Ausgabe, was passiert, wenn ihr ein Update auf 1.6.1 macht? Richtig, nichts geht mehr. Also dokumentieren. Sicherheit ist auch etwas interessantes. Ihr werdet soetwas schwer nachvollziehen können, aber es ist für einen geübten Hacker oft einfacher in ein System einzubrechen als die Mülltonnen an die Straße zu stellen. Und das ist nicht übertrieben. Ob jetzt per File Inclusion/Disclosure oder SQL-Injection der Server übernommen wird, oder per CSRF/XSS Admins zum ausführen von bestimmtem Code bzw. dem öffentlichmachen von Cookies "gezwungen" werden ist egal. Der Server wird übernommen, Benutzerdaten geklaut, danach "defaced" o.ä. - wie der Angreifer halt lustig ist. Sprich: macht euch Gedanken was passieren kann in eurem PlugIn o.ä. - ein Angreifer wird alles versuchen, glaubt mir. Abschließend bleibt zu sagen: nehmt euch Zeit zu schauen, was ihr programmiert. Schreibt Kommentare. Passt auf mit einfachem "lostippen", das geht schnell nach hinten los. Gruß thebod |