2010-03-18 9 views
13

Welche Best Practices gelten für die Sicherung einer Coldfusion-Webseite vor böswilligen Benutzern? (Einschließlich, aber nicht beschränkt auf, SQL-Injection-Attacken)ColdFusion Security

cfqueryparam genug ist?

+1

Was ist daran nicht konstruktiv? diesen Thread zu schließen war nicht konstruktiv IMHO ... #moderatorfailagain Es ist eine gültige Frage, es sei denn, Sie sind ein Ruby Bakeroser. – Dawesi

Antwort

11

Ich benutze eine modifizierte portcullis, und das Filter alle eingehenden var Scopes (URL, die Form, PLÄTZCHEN) onRequestStart. http://portcullis.riaforge.org/

1

I Best Practices für die Coldfusion sind ähnlich denen für die Programmierung von Web-Anwendungen in jeder Sprache sagen würde.

Ich las vor kurzem Essential PHP Security Chris Shiflett und die meisten der diskutierten Probleme betreffen auch ColdFusion, obwohl die Syntax für den Umgang mit ihnen etwas anders sein kann. Ich erwarte, dass es andere (möglicherweise bessere) sprachunabhängige Bücher gibt, die Prinzipien enthalten, die leicht für die Verwendung in ColdFusion geändert werden können.

1

Obwohl eine vorgefertigte Lösung mit arbeiten, empfehle ich zu wissen, alle möglichen Probleme, die geschützt werden müssen. Testen Sie Hack Proofing ColdFusion unter Amazon.

1

niemals das Vertrauen der Kunden.

Die meisten ColdFusion-spezifischen "set and forget" folgen den oben genannten Richtlinien für Serveradministrator-Härtung, halten den Server auf dem neuesten Stand und folgen ColdFusion auf Twitter, um sofort über neue Probleme informiert zu werden.

Für App Sicherheit, die in allen Sprachen gemeinsam ist, sollten Sie jedes Stück Information validieren, die Ihren Server vom Client berührt. Formulare sind offensichtlich Bereiche der strengen Kontrolle, aber vergessen Sie nicht über URL-Parameter, die Sie für die Verwaltung des Anwendungsstatus oder Kontrolle verwenden können. So etwas wie & startRow = 10 & tag = Sicherheit, die nicht ist „angeblich“ vom Benutzer berührt werden ist Benutzereingabe. Auch wenn Ihre Anwendung niemals mit ungültigen Daten brechen könnte, wissen Sie möglicherweise nicht, wie diese Daten in der Zukunft verwendet werden. Die Validierung kann so einfach sein, dass sichergestellt wird, dass jemand keinen 100 Zeichen langen Vornamen eingibt und keine Programmierzeichen enthält oder dass & startRow immer eine Zahl ist. Dies sind die kleinen Dinge, die Anwendungsentwickler manchmal überspringen, weil alles funktioniert, solange Sie die Software wie erwartet verwenden.

Ich glaube, Sie bei der Sony Playstation Hacking als Beispiel aussehen kann. Leider haben sie nicht erwartet, dass jemand den Client hackt (Playstation-Konsole) und die PlayStation-Konsolen-Software manipuliert, um den Server zu hacken. Der Server hat dem Client vertraut.

Vertrauen Sie niemals dem Kunden.

0

CfQueryParam ist sehr wichtig, aber nicht annähernd genug.

Es gibt eine Box-Lösung, die wir bei meiner Arbeit verwenden: http://foundeo.com/security/. Es deckt die meisten Basen ab. Und selbst wenn Sie es nicht kaufen möchten, können Sie sich einen Überblick über die Funktionen verschaffen, die Sie in Betracht ziehen sollten.

1

Ein weiterer großartiger Ort, um die Sicherheit (und alle Arten von anderen Themen) zu lernen, ist massive Liste Charlie Arehart die aufgezeichneter Präsentationen Benutzergruppe zu überprüfen: http://www.carehart.org/ugtv/