最近の、別の記事を探す
【タイトル】
file_get_contentsの悪用防止。例えばLOGIN画面
【キーワード】
Curl,file_get_contents,LOGIN画面,リファラー,クッキー,2段階認証
【内容】
Curlは画面にデータを差し込むなど、ユーザーの操作性向上に役立つものだと認識している。ただしfile_get_contentsも同様だが、他のサイトから自分のサイトの画面が出せるという事で、何か悪用されないか不安を覚えた。
悪用防止の対策を入れるために、先ずは
悪用方法を考えてみた。
(1)
パスワードの使い回しが多いので、パスワードを盗み出す。盗み出した後は検討対象外。
(2)
他サイトのLOGIN画面を出して、
入力されたアカウントとパスワードを、受け取りスクリプトに送る。
(3)(2)に制御をもらう方法は検討対象外。
file_get_contentsでサイトA(仮称)のLOGIN画面を呼び出してみた。画面が崩れています。ソースを見たら、様々な参照がドキュメントルートからの指定になっていたので、
ヘッダ部に1文追加して見た目問題を解決。file_get_contentsした
FORMタグのACTIONを受け取りスクリプトに書き換えて、LOGIN画面からアカウントとパスワードを入手出来ました。
サイトB(仮称)を上記と同じ方法を使ったら、「ブックマークからの呼び出しは出来ない。・・・(サイトの先頭から入る旨のメッセージ)」。file_get_contentsにリファラーを付けてみた。同様のエラー。そのサイトのクッキーをブラウザで調べたら32個もあった。該当パスのクッキーは3個だったので保存してある内容でクッキーを付けたfile_get_contentsを実行したが、まただめです。多分、
クッキーの騙し方が不十分なのだと思います。
悪用防止の対策はクッキーしかないと思うが、どんな内容にすればいいのか、調査を継続します。これは何かの常識なのか?(汗
------------以下、
2022/2/18追記--------------------------------
上記、サイトA(仮称)は2段階認証を使っています。2段階認証を使っていれば、上記方法で盗まれた場合、あるいは他で漏れたものを使い回しでアタックされても不正侵入は防げます。
更新日 2022-02-18