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

  • 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の話はこの前あきやんにちょこっと聞いた気がする。
正直あまりよく分からなかった。これはもうちょっとツメとこう。


コメント欄より - ”++” は ”イイ!” のサイン

  • 2007/11/06(火) 23:00:00

日記

  ハローハロー!ギークな私が来ましたよ。


  今日はメキシカンなお店でメキシカン料理を食べたよ。
  酔ぱらっているよ。メキシカっていい国だね!
  いい国つくろうメキシカ幕府!!


  ランチはけんすうと一緒にこんなの食べたよ。
  写メ撮ろうとしたら 「セッシャの方がいいよ!」 って何回も言うから、
  てっきり 「拙者の方がいいよ!」 というアピールと勘違いして、
  けんすう頭おかしくなったのかと思った。
  ”接写” のことだったぽいです。先に言え!クリアに言え!変換してから言え!!
  ブログでランチの話をするようになったら一人前だってスイーツ脳が言ってた。
  紅はスイーツよりギークが好きです。←結論!
  週末はどうよ?で思い出したけど、次回の講義は週末なの。
  だから平日は地道に自習する。




(id:lovecall)++とは

  コメントくださった方、ありがとうございます!


> Tom.H 様

++=イイ!
--=ちょっと・・・やっぱPerlでしょw的な。

  そぉか!感覚で理解した!!

  ++ = (・∀・)ィィ!!
  -- = (・A・)イクナイ!

  というのがギーク語ですね?


  + は2回しか使えないのかな。
  + 5つでアイシテルのサインだってドリカムが言ってた。気がする。自信はない。




  真顔で言うけど完全に酔っ払っている。
  けんすうに 「気軽に更新しる!」 とアドバイスされたので更新してみた。
  寝る。 print("おやすみなさい"); ←予習したヾ(゚∀゚*)ノ

コメント欄より - 早速ギークに脆弱性を突かれた件!!!

  • 2007/11/04(日) 21:45:58

日記
  素敵なニートの男性からお誕生日プレゼントでワインが届いたよ!
  紅の生まれ故郷で造ってる赤ワイン!
  旅の途中で個人の酒造に立ち寄ったらビバ美味しかったんだって!wktk゚+.ヾ(0゚・∀・)ノ゚+.゚
  2本いただいたので、1本は次回の講義のあとでけんすうと飲もう。そうしよう。
  もう1本は1人占めしよう。なぜなら赤ワインが大好きだから。ギークの次にね>w<


  コメント欄でギークからたくさんフィードバックをもらったよ!
  まずはこの場を借りてお礼。ありがとうございました!!
  好きです。もっと突いてください。性的な意味で。間違った。ほんきにしないでね。




POSTは封書、GETは葉書


POSTとかGETは見たい奴がサーバに送ってくれるおてがみ(phpタンへの指示)
POST→封書
GET→はがき
はがきだと文字数が限られるし、裏を見れば中身がすぐ見れる。
封書だと見られないと思いきや、悪い郵便やさんが、封を開けて中見て
また封しちゃえば...
だから、パスワードとか電話番号は、httpsっていう鍵付きトランクに入れたほうが良いよ。

個人的に、この説明が非常に分かりやすかったです。
エロゲ風コンパイルについては後日言及しますが、比喩が本当にお上手です嫉妬><
て様、ありがとうございます。





POST で渡したとしてもパケットには平文でデータが入ってるので、
経路上のどこかで盗聴を受けた場合にはなす術なく情報が読み取られて
しまいます。
mixi のログイン情報くらいならそう大した使い道もないでしょうからあまり
神経質になる必要はないかもしれませんが、ショッピングやバンキングのような
クリティカルなシーンでは暗号化によって安全性を確保すべきです。
(実際には mixi にも SSL でのログインフォームがあるようです。)


mixiを使用する上で守りたいのがログインのためのパスワードではなく
mixiに保存されている情報にあるのだとすれば、セキュリティを確保する
ためにはすべての通信をhttpsで暗号化する必要があります。
ログイン時だけhttpsを用意してセキュリティはばっちりですとかいってる奴は
バッタです。

あ、https のページ!
戻るボタン押すとエラーが出るページ!守られてる感ありますの。
確かに買い物かごに入れたり個人情報を入力する時は https ってなってるなってる。
ああいう大事なデータは POST で渡しちゃまずいのですね。
&玄関だけhttpsでも、お部屋の窓に鍵がかかってないと悪い人に覗かれるということですね!
わぁい!ひとつ賢くなった♪
- 様ありがとうございます。





GET/POSTの違いは、その名の通り、データを取得するか、送るかの違いです。
ログインなんかは、アカウント名とパスワードを送るのでPOST。
グーグルの検索なんかは、キーワードなんかから検索したデータを取ってくるのでGET。

肝心なことを失念してました。
名前の意味をぜんぜん考えてなかった><
そか、知りたいキーワードを渡して結果をGETするからGET?
メールや掲示板みたいに、こちらがデータを投函するからPOST?
ってことかな、微妙に自信ないけど・・・。
masuidrive様、ありがとうございます。





正しくはクロスサイトスクリプティング

  「君のひとみにクロスサイトスクリプション!」というイラストの件。
  けんすう先生がレスしてくださったけど、クロスサイトスクリプティングの間違いですね^^^^
  間違ってるのに胸キュンしたあの日の純情を返して欲しい。紅としたことが不覚。
  これは以前、価格コムが不正アクセスされたアレかな?
  と思ったら違ってた。アレはSQLインジェクションというのですね。
  次回は 「君のひとみにSQLインジェクション!」 でお願いします。 >けんすう





ところで

  紅が憧れるギークが憧れるギーク(くどい)、dankogai様から、はてなブックマークで
  こんなコメントをいただきました。


ギークもお姉さんも大好き。(id:lovecall)++。でもPHP--


以下Skypeログ

べにぢょの発言: (id:lovecall)++。←これなに? ぷらすぷらす みたいの


けんすうの発言: インクリメント演算子といった気がする


べにぢょの発言: danさんのコメントの++はどゆう意味なのかな


けんすうの発言: うーん、インクリメントしかわからないな><


けんすうの発言: The Perl5 Manual - インクリメントとデクリメント
           マジカルインクリメントとなるものが!



べにぢょの発言: マジカル!なにそのネーミングふざけてるの!!


けんすうの発言: ご、ごめん! かわいいよね


けんすうの発言: 私、ちょっと今日はマジカルインクリメントな髪型にしてきたの
           みたいな感じがする



べにぢょの発言: 可愛くなれる魔法の呪文みたいです!


べにぢょの発言: マジカルインクリマジカルインクリ♪素敵なギークになぁれ♪みたいな!!!


けんすうの発言: おお それいいな


べにぢょの発言: きっとdanさんが言いたかったのはそういうことだと思う





何か違う気がする。ちょっぴり気になる気。