ColdFusionカフェテリア
SAMURAIZ
| ↑一覧へ戻る |
ColdFusionクリニックへようこそ

こんな症状には注意@ 〜cfdump タグを使用した後のコメントアウト〜

作成日: 2015年10月
最終更新日: 2015年10月

■検診してみましょう。

今回の患者Aさんは、<cfquery>で取得した結果を<cfdump>で確認していました。想定通りの結果を取れた事を確認し、<cfdump>をコメントアウトしました。この後にSQL文を変更する人のために残しておいたそうです。

<cfquery datasource="cfartgallery" name="qArt">
	SELECT * FROM ART
	WHERE ARTNAME Like '%a%'
</cfquery>

<!-- ちゃんとDBからデータが取れているかを知りたいときは 
  cfdumpのコメントをはずせば良いよぉぉぉぉ! 親切なAより-->
<!-- <cfdump var="#qArt#"> -->

もちろん、画面でデバッグが表示されなくなったことも確認。この時はこれで大丈夫と思っていたそうです。」

■気付きましたか?

この問題に気がついたのは、後日同じページのプログラムを修正してた上司のBさんでした。Bさんのとても慌てた様子にAさんも何事かと思いましたが、心当たりもないため、静観していました。

そしてBさんは、Aさんを自分の席に呼び、画面を見せました。
その画面がこちらです。

ブラウザのソースコード画面には自分が残したコメントが表示されていました。最初、Aさんは自分が書いたコメントの内容が軽すぎる事に注意されていると思ったそうです。しかし、その後Bさんが画面をスクロールすると、事の重大さに気がつきます。

・・・

ブラウザのソースには、<cfdump>の実行結果、つまり、実行したSQLのSELECT文(つまりテーブル情報や列の情報)や、取得したDBのデータも含まれていたのです。

■今後の予防

今回の原因は、<cfdump>をコメントアウトするときに、ColdFusionコメント(<!--- 〜 --->)ではなく、間違ってHTMLコメント(<!-- 〜 -->)を記述してしまった事です。

HTMLのコメント機能は、ブラウザの画面に表示されないものの、ソースコードには記述したコメントがそのまま含まれています。中にはちょっとした遊び心で、コメントに隠しメッセージを入れていることが話題になることもあります。

ただしColdFusionは、ブラウザで表示される前にサーバー側で処理されるもの。たとえCFタグやCF関数をHTMLコメントで囲ったとしても、それはあくまでもブラウザ側での処理であって、CFタグやCF関数の処理には関係がありません。なので、そのままColdFusionで処理が行われてしまう事に注意が必要でした。

似たような間違いとしては、仮の値を<cfset>などでセットして、それを後からコメントアウトした場合などです。

〜 本番の処理(動的な処理を行って変数Aに結果を格納)〜

<!-- テスト時は仮データを変数Aに指定して確認 -->
<!-- <cfset A=1> -->

<cfset A=1>を誤ってHTMLコメントにしているため、本番に移行した後も変数Aに1をセットする処理(<cfset A=1>)が引き続き行われて、仮データが上書きされてしまっています。

ColdFusionコメント(<!--- 〜 --->)を指定したら、コメントアウトした範囲のCFタグやCF関数の処理を行わなくし、ブラウザにもコメントの部分は返しません。開発の効率やコードの品質を高めるために有効な使い方をして下さい。

■おくすり出しておきますね〜(まめ知識)

上記のケースは、本番移行前のテストデータの段階で上司Bさんが気付いたので、大きなトラブルには発展しませんでした。

ただ、上司Bさんによる発覚が無いまま本番に移行して、実行したSQL文や取得データがソースコード内で丸見えの状態になっていたら。。。と思うとAさんは今でもゾッとするそうです。

お大事に〜
ColdFusionの各種情報の配信


最新情報
■2017/6/26
『ColdFusion 実験室』
実験6

■2017/3/27
ColdFusion 2016 対応
インストール セットアップ情報
CFサーバーのインストール
CFビルダーのインストール

■2016/9/20
『ColdFusion 2016 リリース
Enterprise Edition 活用資料』
記事一覧

■2016/3/30
『ColdFusion 実験室』
実験4、実験5

■2015/8/10 〜
『ColdFusion クリニック』
記事一覧(随時更新中)

■2015/4/8
『JasperReportsによる帳票出力』
2. JasperReportsによる帳票出力【後編】

■2015/3/12
アップクロス株式会社
西元 貞昭様
『JasperReportsによる帳票出力』
1. JasperReportsによる帳票出力【前編】


■2015/2/25
『ColdFusionでエクセルを使いこなそう!』
4. 【上級】ColdFusionのエクセル機能を利用したPDF帳票の紹介

ColdFusionトレーニング


ColdFusionユーザーグループ
ColdFusionユーザーグループ
Copyright 2012 Samuraiz Corporation. All Rights Reserved.