Was ist Sicherheit?
Sicherheit ist ein relatives Maß, kein absoluter Standard.
Leider wird Sicherheit in den meisten Softwareprojekten als einfache Anforderung aufgeführt. Ist es sicher? Die Antwort auf diese Frage ist genauso subjektiv wie die Frage, ob etwas heiß ist.
Der Aufwand zur Erreichung der Sicherheit sollte angemessen sein.
Für die meisten Anwendungen ist es einfach und kostengünstig, ein angemessenes Sicherheitsniveau zu erreichen. Wenn die zu schützenden Informationen jedoch sehr wertvoll sind oder die Sicherheitsanforderungen sehr streng sind, müssen Sie mehr bezahlen, um das Sicherheitsniveau zu erhöhen. Diese Kosten sollten im Projektbudget enthalten sein.
Um Sicherheit zu gewährleisten, sollte die Benutzerfreundlichkeit angemessen sein.
Ein sehr häufiges Phänomen ist, dass zwar die Sicherheit einer WEB-Anwendung stark erhöht wird, gleichzeitig aber auch die Benutzerfreundlichkeit stark abnimmt. Passwörter, SITZUNGSAblaufzeiten und Zugriffskontrollen stellen allesamt Hindernisse für legitime Benutzer dar. Manchmal ist es notwendig, für eine Anwendung angemessene Sicherheit bereitzustellen, aber dies ist nicht die einzige Lösung für alle Anwendungen. Es ist ratsam, bei der Durchsetzung von Sicherheitsregeln mehr auf legitime Benutzer zu achten.
Sicherheit muss Teil des Designs sein.
Wenn Sie die Sicherheit beim Entwerfen Ihrer Anwendung nicht berücksichtigen, werden Sie wahrscheinlich ständig neue Sicherheitslücken entdecken. Sorgfältig geschriebene Programme können schlechtes Design nicht ausgleichen.
Die grundlegenden Schritte in der Anwendung dienen hauptsächlich den legitimen Benutzern.
Ein sicheres Design ist nur ein Teil der Lösung. Während der Entwicklung, wenn mit der Codierung begonnen wird, ist es notwendig, die legitimen Benutzer der Anwendung zu berücksichtigen. Im Allgemeinen besteht das Ziel darin, dass die Anwendung wie vorgesehen funktioniert. Es ist jedoch erforderlich, eine entsprechende Anwendungsfunktionalität zu implementieren, die die Anwendung jedoch nicht sicherer macht.
Trainiere dich.
Diejenigen von Ihnen, die diesen Leitfaden lesen, machen sich Sorgen um die Sicherheit, und obwohl es wie ein Klischee klingt, ist dies ein entscheidender Schritt. Es gibt zahlreiche Ressourcen im Internet oder in Büchern, und viele sind im Repository der PHP Security Alliance enthalten: http://phpsec.org/library/
Filtern Sie zunächst alle externen Daten.
Datenfilterung ist der Grundstein für die Sicherheit von WEB-Anwendungen in jeder Sprache und auf jeder Plattform. Durch das Initialisieren von Variablen und das Filtern aller von außen erhaltenen Daten können Sie mit halbem Aufwand das Doppelte des Ergebnisses erzielen, und bei geringen Kosten beugt der Manager möglichen größeren Sicherheitslücken vor. Eine Whitelist ist besser als eine Blacklist. Das bedeutet, dass alle Daten als illegal betrachtet werden sollten, bis ihre Legitimität nachgewiesen werden kann (besser, als alle Daten als legal zu betrachten, bis sie nachweislich illegal sind).