コメント欄より - 君の瞳にクロスサイトスクリプティング

  • 2007/11/15(木) 23:00:00

日記

ボジョレ・ヌーボー(笑) 飲んだ!
南青山(笑) にある隠れ家(笑) っぽいイタリアンレストラン(笑) で!
シェフの気まぐれサラダ(笑) とかゴルゴンゾーラチーズのペンネ(笑) とか食べた!

以上、スイーツプロトコル。
こうですか?分かりません><

一緒に飲んでた人が帰りにコンビニで体温計買ってた。
「なんか熱っぽいんだよね」ってそれ多分ワインのせい/(^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の話はこの前あきやんにちょこっと聞いた気がする。
正直あまりよく分からなかった。これはもうちょっとツメとこう。


LINEで送る

この記事に対するトラックバック

この記事のトラックバックURL

[php][日記]さてPHPの勉強でもするか

最近アルバイト先coderとして働いてる?のですが、なんとそこではsymfonyを使っての開発を行っています。。。html,css(この二つも微妙かも)しかわからない私は当然苦戦するわけで というかrouting.yml,include_partialのやってることもわかんない人間がsymfonyで開発された

この記事に対するコメント

GJ!ドラゴンボール復習。
参考書ママだと見てるほうも面白くないので、楽しめるように改造するのはイイ!

名前だけじゃなく、今日食べたものとかを複数入力してもらって
スイーツ(笑)プロトコルを出力するようなのとか。

あと、その本持ってないのでよくわからないけど、もうそろそろif文のつかいかたとか書いてない?

  • 投稿者:
  • URL
  • 2007/11/17(土) 15:17:30
  • [編集]

htmlspecialcharsの引数について

第2引数でのENT_QUOTESまでは、できるだけ指定した方がよいですよ。
きちんとやっていればシングルクォートが悪さをする場面は滅多にないですが、問題があることは認識しておくのがよいと思います。

こちらyohgaki'blogで以前わかりやすい解説がされていますね。
http://blog.ohgaki.net/index.php/yohgaki/2006/03/23/htmlentitiesa_raspa_a_afia_a_s

ブログには文字コードも指定すべき、と書いてありますが、(個人的には)どこまで厳密にやるかはリスクと労力のトレードオフかな、という気もします。

ギークなお姉さん好きですw

この記事にコメントする

管理者にだけ表示を許可する