2009-05-22 5 views
6

CFCの優れた点の1つは、ストレート.cfmページとFlexアプリケーションの両方でコードを再利用できることです。snoopersからCFCのaccess = "remote"機能を保護する方法は?

私が開発したそのようなアプリケーションの1つは、チャート機能にFlexを使用し、cfcの 'getResults()'関数にアクセスする必要があります。

このコンテンツのすべてが認証メカニズムの背後にあるが、CFCは、WSDL要求に自分自身を開きますので、:

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

とあれば、実際にブラウザに結果を返しますURLのクエリが適切に細工されています

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

CFMLプロセッサまたはFlex Remotingからの直接の要求がない限り、直接アクセスからcfcを保護するために人々が使用した手法はありますか?

答えて

4

CGIスコープ変数の一部を利用して、要求の送信先を確認できます。

すなわち:CGI.REMOTE_HOST、CGI.REMOTE_ADDR

だから、あなたはおそらくあなたのための有効な値のリストに対して、これらの変数の値をチェックするアクセス=「パブリック」プロパティを使用して新しい機能を構築したいですサーバ。 trueを返す場合はリクエストを実行し、falseを返す場合は何らかのエラーをスロー/リターンします。

+0

また、別の壁の煩わしさを追加するために、何らかの種類の資格情報でリクエストを保護することもできます。 –

+0

私はこれが行く方法だと思います。 CGI.SCRIPT_NAMEを使用して、ブラウザがCFCに直接アクセスしているかどうかをテストしています。彼らがそうであれば、彼らはブーツを得る。 –

3

私はあなたのApplication.cfcファイルにonRequestStartメソッドハンドラを追加することを提案し、そこにチェックを実行...何というチェックがあることは、あなたの現在のモデルによって異なりますが、いくつかの良い提案は、CGIをチェックすることですう.remote_user(認証されている場合)またはセッションスコープに何かを格納していますか? XMLまたは構造体のいずれか - - そしてそのXMLまたは構造体中に存在すると、特定のノード/オブジェクト名を必要とし、私が行うことを好む

<cfif structKeyExists(session,"empID") and len(session.empid)> 
    <!--- user is authenticated, process normally ---> 
<cfelse> 
    <!--- abort request or sending meaningful error message ---> 
</cfif> 
+0

私は、特定のcfcが既に認証されている/許可されている人によって操作されるのを防ぐことも試みていると思います –

1

ことの一つは、各メソッドの引数を1つしか持っています。

<cfif NOT StructKeyExists(arguments.myArgs, "requiredParam")> 
    <cfxml name="myXML"> 
     <error> 
      <message>Required parameter not found.</message> 
     </error> 
    </cfxml> 

    <cfreturn myXML /> 
</cfif> 

2

何新しい役割属性を使用してはどうですか? サイトにアクセスすると、自動的にcflogin roles = "public"となります。

0

ちょうど何か他のものを探しながら、この質問に出くわしたと私は私の2Pを追加しようと思いました:

私は唯一の「管理者」のユーザーでログインに利用できるようにしたいリモートCFCを使用してアプリを持っています。 この場合、CGI変数チェックは引き続きアプリのゲストユーザに渡されます。

管理者ユーザーがログインすると、セッションIDとログイン時刻のハッシュ値を取得し、その値をデータベースとセッションスコープに格納します。リモートのCFCにヒットすると、ハッシュを変数として渡し、管理ユーザーのデータベースに対してチェックします。

レコードが戻ってきたら、私は現在のユーザーがadminであり、依頼を続行することを知っています。

関連する問題