今回から,
実行環境として,
これから作成するWebアプリケーション
今回作成するWebアプリケーションは,
ソースコードの作成
まずはテキストエディタもしくは開発環境でソースコードを作成します
リスト1 フォームに入力された内容をエコーするWebアプリケーション
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN"
"http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<title>PHPによるWebアプリケーション(エコー)</title>
<meta http-equiv="Content-Type" content="text/html;charset=UTF-8">
</head>
<body>
<h3>PHPによるWebアプリケーション(エコー)</h3>
<form method="post" action="<?php print $_SERVER[ 'PHP_SELF' ]; ?>"><p>
<input type="text" name="echo" size="50">
<input type="submit" value="表示する">
</p></form>
<p><?php print htmlspecialchars( $_POST['echo'], ENT_QUOTES ); ?></p>
</body>
</html>
リスト1内のPHPプログラムは,
リスト1で<?php ~ ?>に囲まれている部分
-
(a)
<?php print $_SERVER['PHP_
SELF']; ?>
このWebページのURL(変数) を出力 -
(b)
<?php print htmlspecialchars( $_POST['echo'], ENT_
QUOTES ); ?>
フォームの下に表示される文字列(関数の戻り値) を表示
ここで(a)(b)は変数や関数の戻り値を表示(出力)する処理です。(a)は画面表示には現れないものの,
(b)は,
文字列を表示させるときの注意
フォームから入力された内容をそのまま表示させることには,
- ※ ウェブサイトにおける脆弱性解説 2.クロスサイト・
スクリプティング (独立行政法人 情報処理推進機構)
これの何が問題かというと,
このような事態を防ぐための最も基本的な方法は,
表1 htmlspecialchars()関数により変換される記号の表記
' | ' |
" | " |
< | < |
> | > |
ただ,