6 Stimmen

Wie kann man access="remote" Funktionen in CFCs vor Schnüfflern schützen?

Eine der großartigen Eigenschaften von CFCs ist die Möglichkeit, den Code sowohl für eine reine .cfm-Seite als auch für Flex-Anwendungen wiederzuverwenden.

Eine solche Anwendung, die ich entwickelt habe, verwendet Flex für die Diagrammerstellung und benötigt Zugriff auf die Funktion "getResults()" in der cfc.

All diese Inhalte befinden sich hinter einem Authentifizierungsmechanismus, aber da sich die cfc für eine wsdl-Anfrage öffnet, kann man sie nicht einfach ignorieren:

https://myserver.com/c/functions.cfc?wsdl

und gibt die Ergebnisse tatsächlich an den Browser zurück, wenn die URL-Abfrage richtig gestaltet ist:

https://myserver.com/c/functions.cfc?method=getResults&Term=2009&Course=Anatomy

Welche Techniken wurden verwendet, um die cfc vor direktem Zugriff zu schützen, WENN die Anforderung direkt vom CFML-Prozessor oder von Flex Remoting kommt?

0voto

Gary Stanton Punkte 1425

Ich bin gerade auf diese Frage gestoßen, als ich nach etwas anderem suchte, und dachte, ich würde meine 2 Pence dazugeben:

Ich habe eine Anwendung, die eine Remote-CFC verwendet, die nur für angemeldete "Admin"-Benutzer verfügbar sein soll. In diesem Fall würde die CGI-Variablenprüfung auch für Gastbenutzer der Anwendung funktionieren.

Wenn sich ein Admin-Benutzer anmeldet, nehme ich einen Hash der Sitzungs-ID und der Anmeldezeit und speichere ihn in der Datenbank und im Sitzungsbereich. Wenn ich die Remote-CFC aufrufe, übergebe ich den Hash als Variable und vergleiche ihn mit der Datenbank der Admin-Benutzer.

Wenn ein Datensatz zurückkommt, weiß ich, dass der aktuelle Benutzer Administrator ist, und ich fahre mit der Anfrage fort.

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X