高校生で、最近phpをやり始めた者です。
http://www.phppro.jp/school/phpschool/vol7/1
このページに書いてあるスクリプトの下から五行目の「htmlspecialchars関数」が何をしているのかよくわかりません。
関数の意味も調べ、何故必要なのか頭をひねりつつ考えてみたのですが、今ひとつ理解できませんでした。
大変未熟者ですみませんが、回答をいただけるとありがたいです。
No.2ベストアンサー
- 回答日時:
この場合でいえば「年齢」なので数字が入っているのが当然と
思うところですが、
ユーザーは何をいれてくるかわからないので、
たとえば
"や<
を含む文字を入れられると困ることになります。
具体的には
<input type="text" name="age"
value="<?php print($age); ?>" >
とした場合に、
$ageが「20」であれば、
<input type="text" name="age"
value="20" >
となり大丈夫なのですが
$ageに、たとえば
「20" ><img src="http://www.google.co.jp/intl/ja_jp/images/logo.g … 」
と入れられてしまった場合、
<input type="text" name="age"
value="20" ><img src="http://www.google.co.jp/intl/ja_jp/images/logo.g … >
という結果になって勝手にimgタグを入れられてしまうことになります。
ほかにもjavascriptなどを埋め込まれると危険です。
そのようなHTMLタグの記号として使われる、<や"を無効化する必要がある、ということになるかと思います。
また、ここでは$ageはユーザーからの入力($_POST)から
作られているので注意する必要がある、ということになるかと思います。
No.4
- 回答日時:
使う理由に関しては↓で書き込みされている方を参考にすれば良いかと。
また、使う際にさらにこんな注意点もあります。
http://www.atmarkit.co.jp/fsecurity/rensai/hoshi …
参考URL:http://www.atmarkit.co.jp/fsecurity/rensai/hoshi …
No.3
- 回答日時:
これだけではありませんが、これをしないとデーターベースが操作できてしまうなど、セキュリティー上問題があるためです。
以下の本を読めば、わかります。
以下の本は、必ず必要と言えるでしょう。
http://www.amazon.co.jp/PHPサイバーテロの技法?攻撃と防御の実際-GIJOE/dp/4883374718/ref=sr_1_1?ie=UTF8&s=books&qid=1222643251&sr=8-1
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- 副業・複業 『Webライター』になりたいです。 まずブログSNS副業に興味関心がありました。 そして大きな目標と 14 2023/06/16 14:01
- PHP htmlspecialcharsが機能していないです。 バグですか? 1 2022/04/05 01:22
- PHP 書籍よりも より良い htmlspecialchars の変更を 1 2022/04/18 02:28
- 教えて!goo しょうもない質問をする人 10 2022/07/29 00:08
- 教育・文化 麻生太郎「義務教育は幼稚園と小学校で十分」に賛否「みぞゆう」蒸し返しで「説得力まるでない 4 2022/11/07 20:51
- 大学受験 高校1年生 医学部受験 中学受験をし、中堅私大付属の中学に入りました。当初入学した時は、医学部に行き 5 2022/09/03 23:37
- クラシック 楽譜の読み方についての質問 10 2022/09/07 15:00
- 大学受験 3浪しようと思うので、アドバイスお願いします。 自分としては結構メンタルきつくて後期でいいから、東京 3 2023/02/13 21:47
- 学校 【こどもさんに質問】信頼できるコーチってどんな人柄ですか? 2 2022/04/27 21:07
- PHP isset — 変数が宣言されていること、そして null とは異なることを検査 1 2022/03/27 17:34
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
チェックボックスのvalueを連結...
-
変数の書き方について
-
配列をhiddenで
-
入力した部分を表示させたまま...
-
phpとデータベース
-
PHP/SQL 更新フォーム エラーに...
-
フォームの内容をクッキーに保...
-
PHPで、ボタンを押すと同じペー...
-
メール送信フォーム
-
複数のチェックボックスの確認
-
検索時の選択内容を保持する方法
-
PHP ボタンが押されたら処理を...
-
POSTやGETの変数をフォーム無し...
-
PHP初心者です。何処がエラーな...
-
カウンタのリセット
-
phpで分からないエラーが出てし...
-
チェックボックスを使った複数...
-
複数選択の方法が分からないの...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
HTMLで前の画面に戻る時、入力...
-
<input type="hidden" >で配列...
-
PHP ボタンが押されたら処理を...
-
検索時の選択内容を保持する方法
-
DBの値をチェックボックスに反...
-
ラジオボタンをsessionで使いたい
-
パラメーターを隠す
-
PHPで画像の渡しが上手く行きま...
-
フォームへの前回入力値をクリ...
-
フォームボタンを押すたびに数...
-
フォームでのリセットを使う方法
-
syntax error, unexpected '}' ...
-
PHPの関数実行
-
テキストボックスに初期値を入れる
-
phpで分からないエラーが出てし...
-
入力した部分を表示させたまま...
-
入力フォーム→確認画面→送信画...
-
画面が更新されてもチェックボ...
-
Javascript→PHPに...
-
配列をhiddenで
おすすめ情報