Home > PHP独習中 - フォーム入出力

PHP独習中 - フォーム入出力

  • 2008-01-01 (火) 23:13
  • Tags: ,

実行テスト用 -> http://www.masayashi.com/php/test/formpost.html

memo
  • htmlのフォームからPOSTで投げたデータをphpで受け取って表示するハローワールド
  • 受け取ったデータなどを出力するときは、四の五の言わずにhtmlspecialchars($hoge);かけとけって感じらしい。
  • <script>alert("こんにちはこんにちは!!")</script>

    みたいな入力を与えたら、出力側でスクリプトが実行される。一時流行ったXSS(クロスサイトスクリプティング)ってやつ。

  • このサンプルでもそういう挙動をするはずなんだけど、どうしてかぼくの環境では実行ならず。あるぇー?ブラウザレベルで対策されてるとか?だれかおしえてー
    • コメント欄にて解決しました。Thanks takadekoさん!
formpost.html
<html>
	<head>
		<title>フォーム入力</title>
	</head>
	<body>
	フォームからの入力
	<form action="formput.php" method="post">
		<input type="text" name="name" value="(´・ω・`)" />	<!-- ここの"name"をデータ取り出すときにつかうよー -->
		<input type="submit" value="submit" />	<!-- いってらっしゃい -->
	</form>
	</body>
</html>
formput.php
<html>
	<head>
		<title>フォーム出力</title>
	</head>

	<body>
	<strong>フォームからの入力を受けての出力</strong><p /><p />
	<?php
		$name = $_POST{'name'};	//POSTでもらったデータ

		print ("受け取ったデータをそのまま => $name <p />");
		//	上は$nameに<script>タグを入れて、変なコード実行させられるので危険!
		//	XSS(クロスサイトスクリプティング)っていうらしいよ!

		print ("受け取ったデータにhtmlspecialchars() => ".htmlspecialchars($name)."<p />");
		//	htmlspecialchars()で"<>"とかを実際参照の"&lt;&gt;"に変換しとこうぜー
		//	これで絶対完璧ってわけではないけれど、最低限のマナー
	?>
	</body>
</html>

Comments:4

takadeko 08-01-02 (水) 9:21

おひさしぶりです.今年もよろしくお願いします.

おそらく
http://jp2.php.net/manual/ja/ref.info.php#ini.magic-quotes-gpc

実行可能とするには.htaccessなどで
php_flag magic_quotes_gpc off
とする必要があるかもしれません.

masayashi 08-01-02 (水) 17:19

>takadekoさま
おひさしぶりです!今年もよいお年になりますように。

助言ありがとうございます!
なるほどー。勝手にエスケープされてたのか。
レンタルサーバの使用でテストはできませんでしたが、
疑問が解けてすっきりしました。
ありがとうございます!

Kristofer 08-05-06 (火) 2:52

http://foton.fe.up.pt/moodle/user/view.php?id=1145&course=1

Denis 08-05-06 (火) 12:48

http://www.sawuout.com/phpbb/viewtopic.php?t=1977

Comment Form
Remember personal info

Trackback+Pingback:0

TrackBack URL for this entry
http://www.masayashi.com/2008/01/01/531/trackback
Listed below are links to weblogs that reference
PHP独習中 - フォーム入出力 from 王様の箱庭

Home > blog > PHP独習中 - フォーム入出力

アカウント所有サービス
検索
クリック募金

クリックするだけでスポンサー企業を通して無料で募金が行えます。
あわせて読みたい

あわせて読みたい
ここ一週間の起床時刻

早起き生活
こまごまとしたもの

track feed