君の瞳にクロスサイトスクリプティング
日記
ボジョレ・ヌーボー(笑) 飲んだ!
南青山(笑) にある隠れ家(笑) っぽいイタリアンレストラン(笑) で!
シェフの気まぐれサラダ(笑) とかゴルゴンゾーラチーズのペンネ(笑) とか食べた!
以上、スイーツプロトコル。
こうですか?分かりません><
一緒に飲んでた人が帰りにコンビニで体温計買ってた。
「なんか熱っぽいんだよね」ってそれ多分ワインのせい/(^o^)\
コンビニで体温計買う人はじめて見た。
「日記に書くよ!」って言ったら 「領収書いる?」 と食いついてきてすごく嬉しそうだった。
日記のネタにしたからって領収書で落とせないよ!やっぱ熱測った方がいいかも><
クロスサイトスクリプティング脆弱性
コメントくださった方、ありがとうございます!
参考:input.php
POSTの方にクロスサイトスクリプティング脆弱性ができそうな予感がします。
保存していないので良いかもしれませんが、
勉強のために対応しておいたらいいのではないでしょうか?
名前のところに<script>alert("hoge")</script>を入力すると確認できます。
ぎゃあ!すみません、いま参考書見たら COLUMN の欄にその旨記載してありました><
えぇと、紅は参考書を見ながら勉強を進めてるんですが、
一応なにを使ってるか紹介しておきますね。
10日でおぼえようとした出来心は見逃してください。
けんすう先生も持ってるって言ってた! と巻き添えにしとこ。
で、この本にクロスサイトスクリプティングについての記載があったので
以下、一部引用します。
厳密には、本サンプルにはセキュリティ・ホールが潜んでいます。
というのも、ユーザが入力データに<script>のようなタグを指定した場合、
これがそのまま表示(実行)されるため第3者が任意のスクリプトを実行できてしまうのです。
(このような脆弱性を「クロスサイト・スクリプティング」と言います)。
これを防ぐためには、あらかじめリクエスト情報に含まれるタグを取り除く必要があります。
本レッスンでは詳述しませんが、本文のコードならば、以下のように書き換えればOKです。
こんにちは、<?php print(htmlspecialchars
($_POST['name'])); ?>さん!
了解。
書き換えてみた。
サンプル:input_2.php
これでいいんだろか。
ちょっと、もう1回ソースを見てみよう。
※タグの最初は全角にしてあります。
<html>
<head><title>フォーム情報を取得する(対応後)</title></head>
<body>
こんにちは、<?php print(htmlspecialchars
($_POST['name'])); ?>さん!
</body>
</html>
んー。
htmlspecialchars ←コレ誰?
なんとなく言いたいことは分かるような気もするけど、
グーグルならもっとよく知ってる気がするのでグーグる。
参考:htmlspecialchars (以下一部引用)
htmlspecialchars - 特殊文字を HTML エンティティに変換する
この関数は、掲示板やゲストブックなどでユーザが書きこんだテキストから
HTML のマークアップ用文字を取り除く場合に有用です。
ちょっと分かってきた。
さらにグーグる。
参考:HTML文字のエスケープ (以下一部引用)
htmlspecialchars()には$_POST['textbox']を引数に指定して、
タグなどの変換をしてもらってから表示してます。
試してみると分かりますが、HTMLタグを入力して送信しても<と>に変換してから
出力するので、HTMLタグはちゃんと表示されるわスクリプトは無害になるわで
めでたしめでたしです。
けっこう分かってきた。
今はこのくらいの理解でもいいかなと思ってる。
参考書もそうだけど、とりあえずざっくり行く。
経験上、完璧を求めると挫折するので、最初はツメが甘くてもいいかなーと。
ぬり絵のイメージだ。
線からはみ出さないように丁寧にぬってると全体像のイメージがなかなか湧いてこない。
とりあえずざぁっと色入れて、細かいとこはのちのち塗りつぶす。
PHPはホント、全体像の見当もつかないしなぁ。
相手のイメージが湧かないのはしんどい。
なので、モチベーション上げるためにも、”いい意味で” 適当に進めようかなと思っちょるの!
参考書は何度でも読める。
それと、ギークに脆弱性を指摘されたいという気持ちもちょこっとある。
あるのか?あるアル。
とゆことで。
気分転換にぬり絵した。
紅んち!マジで!クーピーとか超・充実してるカラ!!!
そしてドラゴンボールで復習。
サンプル:input_nurie.php
はっ。
拡張子の話をしてない。
.htaccessの話はこの前あきやんにちょこっと聞いた気がする。
正直あまりよく分からなかった。
これはもうちょっとツメとこう。