Das wird immer gerne durcheinander geschmissen, sind aber zwei grundlegend andere Dinge.
Mit php kannst Du es _FAST_ so sicher bekommen, wenn Du richtig gut bist. Dann ist nur das Problem, dass php als solches andauernd sicherheitsrelevante Bugs hat und bei .NET kam dies bislang wesentlich weniger oft und in wesentlich geringerem Maße vor. Der immense Vorteil liegt halt auch in der Granularität des Rechtemodells bei Windows (Server 2003): der Webserver läuft nicht mit Admin-Rechten, das .NET-Framework läuft nicht mit Admin-Rechten, usw
Auf einer Linux-Box rennt der Apache und auch php mit erheblich mehr Rechten und somit ist ein Security-Issue wesentlich problematischer als bei .NET
Die Grundlegende Regel heißt: all input is evil
Das zeigt das Beispiel beim SEO-Server, dass ich oben gepostet habe, ganz gut:
1. Jedes Formular kann man auch per GET und nicht nur per POST abschicken - darauf hat der Entwickler keinen Einfluss
2. Also sind genau ALLE USEREINGABEN, alle Querystrings und alle Werte aus Cookies EVIL
3. Deshalb immer prüfen, ob die Werte in der richtigen Form sind, wie man sie erwartet (ich erwarte eine Zahl, also prüfe ich ob der Wert eine Zahl ist; ich erwarte einen String, also prüfe ich, ob der string (html-;javascript-)code enthält, etc etc etc)
Eine Liste zu allen php-Problemen mit Lösungen gibt es meines Wissens nach nicht. Es werden auch nicht mehr alle Bugs in den entsprechenden Listen (securityfocus usw) gepostet.
Meine Meinung: PHP ist das Problem, und .NET die Lösung
