Sicherheitslücken und Schutz - neue Versionen PHP 4 und 5

son gohan

Erfahrenes Mitglied
Hallo,

ich beschäftige mich zur Zeit mit dem Thema Sichherheit und PHP.

Viele kleine Sicherheitslücken die den Puffer überlaufen lassen odere andere Gemeinheiten sind möglich habe ich gelesen, aber in den neueren Versionen werden diese bekannt gewordenen Sicherheitslücken auch meist wieder geschlossen und somit wäre es nur empfehlenswert immer die neuen Versionen auf den Server zu installieren.

Aber was macht man nun wenn man kein eigenen Server sich leisten kann und nur ein normales Webhostingpaket hat und nur die vorhandene PHP Versionen nutzen kann ohne Möglichkeit die neusten Versionen zu installieren, ist man dann zwangsläufig den Angriffen der Häcker ausgeliefert mit den älteren Versionen, oder zählt auch hier die alte Weisheit: "Alle Daten die von drausen kommen sind schlecht" und man könnte sich auch dagegen schützen wenn man sicher genug programmiert?

Wenn ja, wie programmiere ich sicher und gut, ich möchte eine kleine community bauen wo Leute eine eigene Seite bekommen sollen die sie immer wieder editieren können, ausserdem sollen sie sich gegenseitig Nachrichten senden können und ich muss auch sonst etliche Abfragen an die Datenbank schicken.

Wie kann ich sowas so sicher wie möglich programmieren auch ohne die neusten PHP, Apache und phpmyadmin Versionen installiert zu haben und ist das überhaupt möglich ohne die neusten Versionen installiert zu haben oder geht das auch ohne?

Empfehlenswerten Tutorials oder weite Tipps und Hilfen?

Vielen Dank für jede Hilfe im Voraus.
 
Also PHPMyAdmin duerftest Du doch selbst installieren koennen auf dem Webspace, nicht?
Bei Apache und PHP (und vielen anderen Komponenten des Servers) musst Du Dich auf die Kompetenz des Hosters verlassen.

Sicher programmieren muss man immer, ob nun mit der aktuellsten PHP-Version oder einer uralten.
Und ja, Daten von ausserhalb sind immer boese und muessen geprueft werden.

Uebrigens, wenn man die Moeglichkeit hat auf dem Server PHP und alles moegliche zu aktualisieren (also wohl ein Root- oder VServer) dann wuerde ich sowieso dazu raten Suhosin einzusetzen.
 
Bei der Wahl des Webhosting-Anbieters kannst du schon prüfen, wie wichtig ihm das Thema Sicherheit ist. Die üblichen Angebote beschränken sich zwar meist auf die relevanten Schlagworte, doch bei näherem Interesse sollte eine E-Mail an den Anbieter Aufschluss darauf geben, mit welcher Konfigurationseinstellungen das Angebot verbunden ist und welche zusätzlichen Änderungen möglich sind. Hier sind es die üblichen Einstellungen wie register_globals etc., auf die es zu achten gilt.

All diese Einstellungen ersetzen aber nicht, sich über die möglichen Sicherheitslücken und -schwachstellen, die nicht nur durch Fehleinstellungen sondern vor allem durch schlechten Code entstehen oder ausgenutzt werden können, zu informieren, sie zu verstehen und somit vorausschauend zu vermeiden. Denn besonders Letzteres, der schlechte Code, kann mitunter auch die gutgemeinten Einstellungen umgehen. Und hier sind auf die Benutzereingaben zu achten, wobei diese nicht nur die direkten, offensichtlichen Eingaben (GET-/POST-Werte) sondern auch die versteckten, verdeckten Eingaben (Cookies, einige Werte der $_SERVER-Variable) sind, die unbedingt für die weitere Verarbeitung validiert werden müssen.

Auch gilt es ein Gespür für mögliche Sicherheitsschwachtellen (nicht nur aus technischer Sicht) zu entwickeln und sie so gleich bei der Entwicklung zu vermeiden.
 
Hallo, ist es so üblich das man meist mit Hilfe von regulären Ausdrücken Benutzereingaben und Cookies validiert oder geht das auch mit anderen leichteren Techniken, den reguläre Ausdrücke sind für mich noch Neuland.

Und gibt es irgendwelche Seiten wo gezeigt wird anhand von Beispielen wie man am sichersten genausten verschiedenen Sachen validiert ?
 
@son gohan

Es gibt wirklich sehr gute & interessante Whitepapers im Netz über verschiedeneste Programmiersprachen :)
Such einfach einmal in Google oder schau dich mal in diesem Thread um : Sicherheits in PHP
Natürlich muss das Script sicher sein, denn wenn das Script unsicher ist, dann ist der Server natürlich leichter Angreifbar. Mit den Regulären Ausdrücken kannst du die Eingaben in an den Server geschickt werden natürlich beengen und deshalb sind die Regulären Ausdrücke ein muss für jeden Webprogrammierer, PHP, Perl, Python und Javascript kann man Reguläre Ausdrücke verwenden, nur so mal am rande ;)

MfG
KD3
 
Hallo, ich habe mir die Seite Sicherheit PHP eben angeschaut und mir sind viele Ideen gekommen, ich denke gegen SQL Injektion bin ich jetzt sicher mit predefended Statements und Cross Site Scripting müsste ich auch verhindern können mit escapen von HTML Synatx, aber zum thema Cross Site Tracing habe ich bisher noch keine Lösung finden können, hier wird ja der HTTP Header angegriffen, was kann man hier für Lösungen nehmen, in google habe ich so mal nichts gefunden.
ich war auch am überlegen ob ich die frage nicht direkt in das Topic hier bei tutorials.de über Sicherheit PHP rein machen sollte.
 
Also das einzige was ich über Cross Site Tracing gefunden habe ist auf english ->http://www.kb.cert.org/vuls/id/867593 , es ist zwar mit einem Lösungsansatz aber da geht es mal wieder um mode_rewirte und andere Sachen von denen ich keine Ahnung habe, vielleicht kann sich es ja mal jemand hier ansehen und verständlich auf deutsh beschreiben wie man sich dagegen schützt das wäre sicher ganz hielfreich.
 
Die Antwort einer TRACE-Anfrage ist die Anfrage des Clients selbst. Damit kann geprüft werden, welche Daten alles an den Server geschickt werden.
Dies wird nun beim Cross-site Tracing so ausgenutzt, dass Cookies für jede beliebige Domain abgefragt werden können. Dazu wird eine TRACE-Anfrage an den gewünschten Webserver geschickt, der die Anfrage samt Cookies zurückliefert.
 
Also so wie es aussieht kann man es verhindern das Cross Site Tracing, und anscheinend reichen auch ein paar Zeilen Code in der .htaccess Datei dazu aus, ich habe bisher nie mit der .htaccess Datei gearbeitet korigier mich deshalb bitte jemand falls ich falsch liege aber ich würde es dann jetzt so machen indem ich folgenden Code in die .htaccess Datei schreibe:


PHP:
      RewriteEngine On
      RewriteCond %{REQUEST_METHOD} ^TRACE
      RewriteRule .* - [F]

Ich weiß nicht, reicht das bereits?

P.S. wie ist es mit dem Puffer overflow, wie kann man sowas vermeiden auch nur durch validierung von Parametern und wie wird der überhaupt ausgelöst vielleicht mal leich nachvollziehbar an einem Beispiel?
 
Zurück