Anfang der weitergeleiteten E-Mail:

In PHP wuerde man auch nicht abfragen ob es ein Get-Request ist, sondern nach folgendem Schema: if ($_GET["id"]) // die Unsicherheit dieses Statements sei mal dahin gestellt. Ich fuehl mich richtig schmutzig, diesen Code auf dieser Liste geschrieben zu haben ;)

Nicht böse sein, und das hier soll auch sicher keine Flamewar oder eine Diskussion php ist blablabla werden. Ruby ist definitiv die bessere (konzeptionell saubere) Sprache. Aber...

Der Code

  if($_GET["id"]) {  /* code zum Ausführen */ }

ist absolut nicht unsicher, nur ein wenig "unsauber". Jeder ansatzweise ernsthafte PHPler würde immer folgendes schreiben (dazu bringt einen schon das obligatorische E_NOTICE in den Settings der Entwicklungsmaschine):

  if(isset($_GET["id"])) {  /* code zum Ausführen */ }

Anschliessend sollte man den Datenbank-Layer seines Vertrauens hinzuziehen (escaping etc.) und die Daten abholen...

Ein
   unless params[:id]
macht doch exakt dasselbe und hat die gleiche Unsicherheit.

Ich fühle mich immer ein wenig schmutzig in meiner Informatikerhaut, wenn einfach nur geplappert wird "xy ist unsicher" ohne dabei über die eigentlichen Ursachen von Sicherheitslöchern nachzudenken. Jemand der Web-Applikationen mit irgendeiner general purpose programing language (Ruby, PHP, Java,...) baut und dabei nicht die Grundlagen des HTTP Protokoll (Request, Response, POST, GET) zumindest grob kennt, kann in keiner allgemeinen Sprache sichere Programme bauen. Es sei denn, er hat einen MDA-Ansatz und tummelt sich nur in einer DSL. Dies geht nicht gegen Dich Werner!

So, ich gehe jetzt duschen. Seid nicht böse, aber das musste mal gesagt sein. A fool with a tool is still a fool. Auch wenn einem das eine Tool (Ruby) mehr abnimmt als das andere (PHP)

Gruß
  Matthias

_______________________________________________
rubyonrails-ug mailing list
[email protected]
http://mailman.headflash.com/mailman/listinfo/rubyonrails-ug

Antwort per Email an