- 2008-01-01 (火) 23:13
- Tags: php, programming
実行テスト用 -> 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()で"<>"とかを実際参照の"<>"に変換しとこうぜー
// これで絶対完璧ってわけではないけれど、最低限のマナー
?>
</body>
</html>
- Newer: PHP独習中 - return未定義の関数の戻り値はNULL
- Older: 2007年統括
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
- Denis 08-05-06 (火) 12:48
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 王様の箱庭











