うたらぼ(アメブロ)ホームピグアメブロ芸能人ブログ人気ブログAmeba新規登録(無料)うたらぼ(アメブロ)ColdFusionを中心として、その他もろもろ、気が向いたときに書いていきます。以下のtest1.cfmからデータを入力し、post1.cfmでデータを表示させます。入力したテキストをsendボタンを押して表示する。●以下のテキストを入力しました。</cfoutput>test1.cfmと同じ内容のtest2.cfmを作っても、post1.cfmは同様に表示します。単純なものなら問題ないですが、ユーザ登録するような重要な画面であれば、勝手に登録されると困ります。上記のように単純であれば、外部の入力フォームからユーザ登録されるかもしれません。ならないためには、post1.cfmに来たデータは、必ずtest1.cfmから来たと認識できればよいです。以下のようなプログラムを作ってみました。入力したテキストをsendボタンを押して表示する。所定のフォームからではありません。●以下のテキストを入力しました。"chk")>【Application.cfm】sessionスコープを有効にしています。sessionスコープの変数は、サーバのメモリで保持されます。【test2.cfm】createUUID関数で、ユニークな文字列を生成しています。この値をsession.chk変数にセットします。inputタグにもセットします。【post2.cfm】session.chk変数とform.chk変数の値が同じであれば、test2.cfmから来たと認識します。session.chk変数がない場合は、createUUID関数でユニークな値を生成。ことがない限りform.chk変数の値と同じになることはありません。最後の行はsession.chk変数を削除しています。value="xxx">が、test1.cfmに追加された程度に見えます。xxxの部分は毎回変化しますので、固定値をとることができません。UUIDをセットすることがわかったとしても、session変数自体が外部からセットできませんので、エラーとなります。これで外部からpostしても入力したデータは表示されません。今回は1回だけのpostする方法でしたが、ColdFusionでは連続でpostすることもできます。Reserved.スパムを報告お問い合わせ利用規約ヘルプ。