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