次→URLにパラメーターを付ける際・受け取る際の注意事項URLパラメーターは、ブラウザのURLアドレスに付加するため、指定できる変数名や値に制限があります。その制限を知り、適切な回避を行わないと、値が途中で切れたり文字化けを起こす場合があるため注意が必要です。href="リンク先URL?変数名1=値1&変数名2=値2&変数名3=値3&...">リンクメッセージ</a>URL変数をセットする際の注意事項URL変数をセットする際には、次の点に注意して下さい。URLとパラメータを区別するために、URLの後にクエスチョンマーク(?)を付けます。URL変数は、変数名=値としてセットします。変数名・値には、記号やスペースなどを含めてはいけません。同様に日本語も含めないで下さい。値として日本語を送りたい場合は、値をエンコードします(次で説明します)。複数のURL変数を送る場合は、変数と変数との間をアンド(&)で区切ります。HTMLタグのため、URL変数の値を動的に(ローカル変数の値などを)セットする場合は、<cfoutput>〜</cfoutput>で囲まれていることを確認しましょう。href="next.cfm?cname=#company_name#">リンク</a></cfoutput>リンク先のページでURL変数を参照(使用)する際の注意事項リンク先のページでは、URL変数として値を参照(利用)する際には、次の点に注意して下さい。付けることを強く推奨します。変数の値を画面に表示する際は、HTMLEditFormat()関数やEncodeForHTML()関数を使用して値をエンコードする事を心がけて下さい。ダイレクトに値を表示した場合、ユーザーによって不正なXSS攻撃に利用される等のリスクが生じます。以前のForm変数を表示する際の説明もご参考下さい(http://forum.samuraiz.co.jp/samu04/04.html)URL変数の値を使ってデータベース処理を行われる場合は、<cfqueryparam>タグを使って想定されたデータタイプの値のみ処理するようにします。変数の値を不正に書き換えられてSQLインジェクション等のアタックによるリスクを軽減させるように心がけて下さい。以前のデータベース処理の説明もご参考下さい(http://forum.samuraiz.co.jp/samu05/07.html)渡されてくる変数が適切かどうかをチェックするプログラムを追加する事を推奨します。変数の値が数値で渡される事が前提の場合、そのURL変数を利用する前に条件文とIsNumeric()関数を使用してチェックを行います。変数が存在しない場合を考慮して、IsDefined()関数によるチェックも含めます。NGの処理(エラーメッセージを表示したり、<cfabort>等で処理を中断する)</cfif>URLアドレスに値が含まれているということで、前のページでも説明がある通り、ユーザーによって値が書き換えられる恐れがある点に特に注意して、想定された値では無かった場合の対処をプログラムに含めて下さい。資料・FAQ事例紹介ColdFusionユーザーグループ。