HTTPサーバーとWeb開発

53. エラー・メッセージを簡単に表示するには?

エラー・メッセージを表示する方法には、いくつかの方法がある。
RPGエンジンによって提供されている SNDERRMSG プロシージャーを使用すると別のエラー画面
を表示することができる。
これはWebで普及している手法であるが、Windows系に慣れているユーザーにはエラー・ダイアログ
が表示されるほうがわかりやすい。

エラー・ダイアログを表示する機能として EnterpriseServer では JavaScript5250 で

alertmsg.js

という Javaスクリプトが用意されている。
これは常にJavaスクリプトによる Alertメッセージが表示されるように仕組んでおいてメッセージ値が
書き込まれているときに限って Alertメッセージを表示するという手法である。
従ってエラーがないときにでも、alertmsg.js は、つねにダウンロードされることになる。

次にもっと手軽に alertメッセージを出力する方法をここで紹介する。
これは「クロスサイト・スクリプティング」という手法である。

今、ある商品レコードの検索が要求されたものとする。
CGI は商品レコードを検索してレコードが見つかれば、商品名や単価などを表示する。

【 商品レコードが見つかったときのHTMLタグ 】
<tr>
<td>商品名 </td>
<td>:</td>
<td><FLD NAME=SHNAME>60インチ・プラズマ・ディスプレイ</FLD></td>
</tr>

しかし、商品レコードが見つからなかったときには、商品名の欄に商品名の代わりに次のような
スクリプトを埋め込むものとする。

<tr>
<td>商品名 </td>
<td>:</td>
<td><FLD NAME=SHNAME><SCRIPT>alert("商品コードの誤りです。")</SCRIPT></FLD></td>
</tr>

このHTMLを実行してみると、「商品コードの誤りです。」というメッセージ・ダイアログが表示されて
商品名の欄は空白となる。
この手法は「クロスサイト・スクリプティングの脆弱性」として問題視される場合があるので
一般ユーザーには教えないようにして頂きたいが、CGI によって非常に簡単にエラー・メッセージを
表示する方法として有効である。