<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>API &#8211; 株式会社カジトリ 技術ブログ</title>
	<atom:link href="https://develop.kajitori.co.jp/archives/tag/api/feed" rel="self" type="application/rss+xml" />
	<link>https://develop.kajitori.co.jp</link>
	<description>Officeアドイン、Laravel、Exmentなどの技術記事を記載します。</description>
	<lastBuildDate>Wed, 31 Aug 2022 09:14:14 +0000</lastBuildDate>
	<language>ja</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	

<image>
	<url>https://develop.kajitori.co.jp/wp-content/uploads/2021/01/cropped-logo1-32x32.png</url>
	<title>API &#8211; 株式会社カジトリ 技術ブログ</title>
	<link>https://develop.kajitori.co.jp</link>
	<width>32</width>
	<height>32</height>
</image> 
	<item>
		<title>診断系のFacebookアプリは危険！？Facebookアプリの仕組みについて解説(2018年版)</title>
		<link>https://develop.kajitori.co.jp/archives/97</link>
					<comments>https://develop.kajitori.co.jp/archives/97#respond</comments>
		
		<dc:creator><![CDATA[hsatou]]></dc:creator>
		<pubDate>Thu, 30 Aug 2018 13:00:32 +0000</pubDate>
				<category><![CDATA[その他技術]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Facebook]]></category>
		<category><![CDATA[OAuth]]></category>
		<category><![CDATA[PICKUP]]></category>
		<guid isPermaLink="false">https://develop.kajitori.co.jp/?p=97</guid>

					<description><![CDATA[はじめに 最近、筆者の周りで 「Facebookの診断系アプリは危険」 「あらゆる個人情報を、業者に渡すことになる」 「やってしまうと、Facebook乗っ取られたり、投稿」 「やってしまった方は、今すぐパスワードを変更...]]></description>
										<content:encoded><![CDATA[<style type="text/css">
.h_midashi, .h_midashi2{<br />
    margin-top: 3em;<br />
}<br />
</style>
<h2 class="h_midashi">はじめに</h2>
<p>最近、筆者の周りで<br />
「Facebookの診断系アプリは危険」<br />
「あらゆる個人情報を、業者に渡すことになる」<br />
「やってしまうと、Facebook乗っ取られたり、投稿」<br />
「やってしまった方は、今すぐパスワードを変更して二段階認証を設定するべき」<br />
という話が上がっていました。</p>
<p>Facebookの診断系アプリというと、例えば今だと以下のようなものです。</p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830192756.png"><img fetchpriority="high" decoding="async" class="alignnone size-large wp-image-555" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830192756-768x670.png" alt="" width="768" height="670"></a></p>
<p>これ系のアプリの診断結果は、ちょいちょいFacebookのフィードにも上がってきますね。</p>
<p>これらのアプリをあまりやらないほうがいいのは、筆者も同意見です。<br />
ですが、「ものすごく危険」「やると乗っ取られる」といったこととは、事実と若干異なる部分があります。</p>
<p>そこで今回は、</p>
<ul>
<li>Facebookアプリとはそもそもなにか</li>
<li>どのような情報を取得しているか</li>
<li>どのような仕組みなのか</li>
<li>巷で言われていることの事実・間違いの切り分け</li>
</ul>
<p>を、可能な限りシステム疎い方でも分かるように、頑張って解説していこうと思います！</p>
<p>※個人の見解を含みます。また間違いや情報の更新などございましたら、ご指摘いただければ幸いです。</p>
<p><span id="more-97"></span></p>
<h2 class="h_midashi">先に結論を書くと(最低限これだけ)</h2>
<ul>
<li>Facebookアプリはパスワードを盗めないから乗っ取りも出来ないから安心しろ</li>
<li>あなたの友達がどんなアプリを使用していても、あなたには影響がない</li>
<li>ただし、アプリの設定によっては「あなたに代わって投稿」は出来ちゃうから、そこだけ注意</li>
<li>また、アプリの設定によっては「個人情報を不必要に悪用」されるリスクはある</li>
<li>100％安全というわけではないので、アプリ使用時の設定を必ず確認し、自己責任で使用すること</li>
</ul>
<h2 class="h_midashi">Facebookアプリとは？</h2>
<p>ざっくり言うと、Facebookの情報を使用したアプリすべてです。<br />
それはWebサイトの場合も、スマホのアプリの場合もあります。</p>
<p>例えば、前述したWebサイトの「nametests.com」は、典型的なFacebookアプリです。<br />
<a href="https://ja.nametests.com/"><a href="https://ja.nametests.com/">https://ja.nametests.com/</a></a><br />
<a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193633.png"><img decoding="async" class="alignnone size-large wp-image-556" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193633-768x536.png" alt="" width="768" height="536"></a></p>
<p>Facebookの情報を使用して、診断や占いなど行うものですね。</p>
<p>一方で、スマホのアプリでも、Facebookの情報を使用しているものがあります。<br />
例えば、一時期筆者もやっておりました「キャンディークラッシュ」。<br />
これはアプリの設定で、「Facebookでログイン」という表記がされています。<br />
<a href="https://hirossyi.net/wp-content/uploads/2018/08/2018-08-30-21.59.43.jpg"><img decoding="async" class="alignnone size-large wp-image-557" src="https://hirossyi.net/wp-content/uploads/2018/08/2018-08-30-21.59.43-374x768.jpg" alt="" width="374" height="768"></a></p>
<p>よくある診断系だけでなく、このようなスマホのアプリも、立派なFacebookアプリです。</p>
<p>そして、そのFacebookアプリをユーザーがはじめて使用するとき、このような表示がされます。</p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193634.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-558" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193634-750x768.png" alt="" width="750" height="768"></a></p>
<p>よく見るやつですね。<br />
そして、「裕としてログイン」をクリックすることで、アプリ（写真の場合はnametests.com）が、ユーザーの情報を取得することができるわけです。</p>
<h2 class="h_midashi">Facebookアプリの仕組み</h2>
<p>さて、ここからはFacebookアプリの仕組みを、簡単に解説します。<br />
順を追って解説していきますね。</p>
<h3 class="h_midashi2">開発者がFacebookアプリを作る時</h3>
<p>開発者がFacebookアプリを開発する際、「このアプリは、Facebookのどの情報を取得するか？」という情報を、開発者はあらかじめ設定しておきます。<br />
例えば、</p>
<p>・ユーザーのEメールアドレス<br />
・ユーザーの写真一覧<br />
・ユーザーの誕生日<br />
・ユーザーの性別<br />
・ユーザーのタイムライン一覧<br />
・友達リスト<br />
といった情報です。</p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193635.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-559" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193635-768x368.png" alt="" width="768" height="368"></a></p>
<p>このような情報を、アプリごとに、あらかじめ設定しておく必要があります。ちなみにこれらの設定を「スコープ」といいます。</p>
<p>なお、ここで1点特記事項としては、これらの項目として、<strong><span style="color: #ff0000;"><span class="red bold">パスワードを設定することは出来ません。</span></span></strong><br />
<strong><span style="color: #ff0000;"><span class="red bold">Facebookアプリはパスワードを取得することは出来ませんし、変更することも出来ません。</span></span></strong></p>
<h3 class="h_midashi2">ユーザーがFacebookアプリを使用する時</h3>
<p>そして、Facebookアプリを使用する場合です。<br />
下の画像のように、Facebookアプリを使用する際、「Facebookにログイン」のボタンをクリックします。</p>
<p>すると、上にも貼り付けた画像が表示されます。</p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193634_2.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-561" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193634_2-750x768.png" alt="" width="750" height="768"></a></p>
<p>ここで重要なのは、赤線で囲った部分です。<br />
これは、これから使用するFacebookアプリが、Facebookから取得する情報・もしくは使用する権限を、一覧で表示します。</p>
<p>ちなみにキャンディクラッシュの場合はこちらです。</p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/2018-08-30-20.30.41.jpg"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-562" src="https://hirossyi.net/wp-content/uploads/2018/08/2018-08-30-20.30.41-374x768.jpg" alt="" width="374" height="768"></a><br />
「友達リスト」が含まれていますね。なのでキャンディクラッシュは、ログインしたユーザーの友達リストも取得することができるようになっています。<br />
（そして、この「友達リスト」についても重要な事実があります。詳しくは後述します）</p>
<p>ユーザーは、ここに書かれている情報を確認することで、「これから使用するFacebookアプリは、いったいどんな情報を使用するか」ということを、確認することができるわけです。</p>
<p>なので、必要以上にてんこ盛りだと、「あれ、なにか怪しくない？」となるわけです。<br />
設定を大量にぶち込むと、こんな感じになります。</p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193636.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-563" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193636-701x768.png" alt="" width="701" height="768"></a></p>
<p>これはあからさまに怪しいですねｗこのようなアプリは怪しいので、ユーザーは使用しない方がいいです。</p>
<h3 class="h_midashi2">ユーザーがFacebookにログイン後、アプリで行っていること</h3>
<p>「Facebookにログイン」を実施した後、アプリ内部でどのような処理を行っているかを説明します。</p>
<p>まず、ログインすることで、Facebookから「アクセストークン」と呼ばれる、超長い文字列が返ってきます。</p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193637.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-564" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193637-768x140.png" alt="" width="768" height="140"></a></p>
<p>こんな感じの文字列です。実際には200字以上あります。</p>
<p>この文字列を使用して、アプリはFacebookから、情報を取得するわけです。<br />
例えば、ログインユーザーのプロフィールを、アプリから取得したい場合、</p>
<p>・先ほど取得したアクセストークン<br />
・取得したい内容<br />
この2点をFacebookに渡します。</p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193638.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-565" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193638-768x354.png" alt="" width="768" height="354"></a></p>
<p>こうすることによって、Facebookはプロフィール情報を、アプリに送り返すわけです。</p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193639.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-566" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193639-768x219.png" alt="" width="768" height="219"></a></p>
<p>ちなみにここで取得できるのは、ユーザーがログインしたときに設定している、「スコープ」の範囲内です。<br />
上の画像で使用している例でいうと、アプリBでは「友達リスト」を設定しています。<br />
そのため、アプリは友達リストを取得することができます。</p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193640.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-567" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193640-768x340.png" alt="" width="768" height="340"></a></p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193641.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-568" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193641-768x230.png" alt="" width="768" height="230"></a></p>
<p>一方、アプリAでは「友達リスト」を、取得する情報として設定していません。<br />
そのため、仮にアプリAが友達リストを取得しようとすると、エラーが発生して取得できません。</p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193642.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-569" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193642-768x331.png" alt="" width="768" height="331"></a></p>
<p><a href="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193643.png"><img loading="lazy" decoding="async" class="alignnone size-large wp-image-570" src="https://hirossyi.net/wp-content/uploads/2018/08/capture_20180830193643-768x205.png" alt="" width="768" height="205"></a></p>
<p>このように、Facebookから情報を受け取ったアプリは、この情報を使用して、その後のプログラムで活用できることになります。</p>
<p>※この仕組みは、システム用語で言うと「API」と呼ばれます。<br />
また、ログインなどの仕組みを「認証」「認可」、Facebookアプリで採用している仕組みは「OAuth2」と呼びます。<br />
テストには出ないです。</p>
<p>これが、Facebookアプリの一連の流れです。<br />
ここで重要なのは、<br />
・Facebookアプリでは、ログインユーザーのパスワードを受け取っていないし、受け取ることは決して出来ない<br />
・ログインユーザーの情報は、「アクセストークン」と呼ばれる超長い文字列を使用することで、取得できる。そしてこれは、パスワードを使用しない<br />
・Facebookアプリがアクセストークンを取得するためには、ログインユーザーが一度、「Facebookでログイン」ボタンを押す必要がある<br />
ということです。</p>
<h2 class="h_midashi">巷で言われている話の真偽、QA</h2>
<p>これらの話を踏まえ、Facebookアプリ（特に診断系）について、巷で言われていることの真偽やQAをまとめていきます。</p>
<h3 class="h_midashi2">Facebookアプリを使用すると、アカウントが乗っ取られる！！</h3>
<p>「乗っ取られる」の定義が何かによりますが、「IDパスワードが盗まれる」「自分のアカウントを誰かに勝手に使われる」という意味だと、それはNOです。<br />
なぜなら、<strong><span style="color: #ff0000;"><span class="red bold">Facebookアプリはログインユーザーのパスワードを取得することが出来ない</span>からです。</span></strong><br />
パスワードを取得出来ないので、悪意のある開発者が、その後のアカウントをどうこうしようとしても、それは出来ません。<br />
※ただしFacebookアプリでは、「タイムラインの投稿」というスコープがあります。これは文字通り、Facebookアプリが、ログインユーザーのタイムラインに投稿をすることができる権利です。<br />
そのため、<span class="font-bold">アプリのスコープに「タイムラインの投稿」が含まれていた場合、悪意のあるアプリが、ユーザーにタイムラインに投稿することは出来てしまいます。</span>そこは要注意です。</p>
<h3 class="h_midashi2">診断系アプリを使用してしまったら、今すぐパスワード変更をして二段階認証を設定すべき！</h3>
<p>これは意味がないです。なぜなら、もうおわかりだと思いますが、Facebookアプリはパスワードを使用していません。<br />
いくらパスワードを変更しようとも、二段階認証を設定しようとも、アクセストークンが有効な限り、Facebookアプリはあなたの情報を取得できてしまいます。<br />
なのでこの点に関しては、二段階認証も無意味です。<br />
（ただ一般論として、現代では二段階認証の有無で情報流出のリスクが段違いなので、二段階認証は設定するようにしてくださいね）</p>
<h3 class="h_midashi2">アプリを使用すると、個人情報を抜かれるんでしょ？</h3>
<p>これは、上で解説している「スコープ」次第です。スコープで設定した内容のみ、Facebookから情報が取得できます。<br />
ちなみに標準設定だと、アプリが取得できるのは、<br />
<span class="red">※2018/09/02 1:00訂正</span><br />
・id<br />
・名前<br />
・公開プロフィール(プロフィール写真、性別など)<br />
です。<br />
※当初、idと名前のみと記載しておりましたが、公開プロフィールも含まれておりました。訂正いたします。<br />
なお、公開プロフィールは、Facebookに登録していなくても、誰でも閲覧できる情報になります。</p>
<p>これらはFacebookの画面からかんたんに取得できる、公開情報になります。<br />
それ以上の情報は、アプリごとに設定されているスコープ次第です。ログイン画面でユーザーが許可した内容のみ、Facebookアプリに渡すことになります。</p>
<p>この設定によって、例えば以下のような情報をアプリに渡すことになります。<br />
・メールアドレス<br />
・誕生日<br />
・写真<br />
・タイムライン投稿の一覧<br />
なにかに悪用しようと思えば十分ですね。<br />
そのため、Facebookアプリを使用する場合、<span class="font-bold">ログイン時の「受け取る情報」がどうなっているかを確認し、自己判断で行ってください。</span><br />
ちなみに、実際に個人情報悪用のニュースもあるようです。<br />
<a href="https://r.nikkei.com/article/DGXMZO29264270R10C18A4X11000?s=0" rel="noopener noreferrer" target="_blank"><a href="https://r.nikkei.com/article/DGXMZO29264270R10C18A4X11000?s=0">https://r.nikkei.com/article/DGXMZO29264270R10C18A4X11000?s=0</a></a></p>
<h3 class="h_midashi2">友達のあの人がFacebookアプリを使用すると、自分の個人情報まで流出するからやめろ！！</h3>
<p>これは明確にNOです。<br />
その根拠は、Facebook APIの「友達リスト」の仕様に記載があります。<br />
<a href="https://developers.facebook.com/docs/graph-api/reference/v3.1/user/friends"><a href="https://developers.facebook.com/docs/graph-api/reference/v3.1/user/friends">https://developers.facebook.com/docs/graph-api/reference/v3.1/user/friends</a></a><br />
ざっくり和訳すると、以下になります。</p>
<p>↓↓↓↓↓↓<br />
友達リスト<br />
あなたに以下の情報を提供します<br />
・このFacebookアプリをインストールした、あなたの友達ユーザーの一覧<br />
・あなたの友達ユーザーの総数（このFacebookアプリをインストールしていないユーザーを含む）<br />
↑↑↑↑↑↑</p>
<p>つまり、悪意のあるアプリを友達が利用しちゃってたとして、<strong>あなたがそのアプリを使用しない限り、あなたの情報を友達が取得することは出来ません。</strong></p>
<p>キャンディークラッシュを例にとります。キャンディークラッシュのアプリで取得できる、Facebookの友達の情報は、すでにキャンディークラッシュをインストールしている友達のもののみです。<br />
<strong>キャンディークラッシュを使用していないユーザーの情報を、キャンディークラッシュが取得することは出来ません。</strong></p>
<p>なので、どれだけ友達が変なアプリを使用していようが、イライラする必要はないです。ご安心を。</p>
<h3 class="h_midashi2">じゃあなんでレイ○ンの投稿や乗っ取りは終わらないの？</h3>
<p>Facebookアプリとは別の原因の可能性が高いです。例えばパスワード使い回しとかね。<br />
最低限パスワード使い回しは辞めて、二段階認証の設定は行いましょう。起こってからでは遅いです。</p>
<h3 class="h_midashi2">他のブログで、「個人情報が抜かれる！！」「こんなのやる人は頭が悪い！！」と書いてあったんだけど</h3>
<p>たぶん技術的なことが分かっていない人が書いたブログだと思います。それかアクセス稼ぎか。<br />
「Facebookにログイン」のときに書かれている項目以外の情報が、Facebookから抜き出されていたとしたら、<strong class="red font-bold font-large">それはFacebookの大セキュリティ事故です。</strong>それも株価大暴落ってレベルじゃない。<br />
そんなことができるとしたら、真っ先にこっそりFacebookに報告しましょう。すごい報酬がもらえるはずです。<br />
・・・まあ、それぐらい有り得ないレベルですね。</p>
<h3 class="h_midashi2">結局、Facebookアプリは100％安全なの？</h3>
<p><span class="font-large">100％安全という訳ではないです。</span><br />
乗っ取りや、関係ない友達の情報を悪用されることはありませんが、あなたの個人情報悪用のリスクがあります。</p>
<h3 class="h_midashi2">難しくて、良く分からなかった！</h3>
<p><span class="font-large">アプリを使用しないのが無難です。</span></p>
<h2 class="h_midashi">まとめ</h2>
<p>以上、Facebookアプリの仕様をまとめました。<br />
昔はFacebookアプリは、割と自由だった記憶があります。なので友達の情報を勝手に利用とか、そういうことが起きていたのかもしれません。<br />
が、最近厳しくなったようです。悪意のある業者が勝手に投稿など行ったんでしょう。<br />
それもあってか、少なくとも2018年現在では、アプリに関するセキュリティはかなり厳重になっております。なので、悪意のあるアプリによる被害というのは、限りなく低いと思います。<br />
（考えてみると、Facebookアプリのそういった投稿、昔に比べて減ってますよね）</p>
<p>ただ、それでもリスクが無いわけではないです。<br />
例えば診断系のアプリでは、写真を使うものがあります。<br />
「写真を取得」のスコープを設定すれば、アプリがログインユーザーの写真を取得することが出来ますので、その写真を使って、どうこうすることは考えられます。</p>
<p>なので、やはりFacebookアプリを使用する場合は、自己判断で行うほうが良いです。<br />
そのアプリが信頼できる業者なのか、その辺は自分自身で判断してください。</p>
<h2 class="h_midashi">最後に</h2>
<p>Facebookアプリが、情報を取得できないようにする方法です。<br />
この方法を実行すれば、実行後はFacebookアプリは、一度許可していたとしても、情報を取得することができなくなります。<br />
その手順は以下のURLをご参照ください。（書こうとしたけど力尽きた）<br />
<a href="https://www.facebook.com/help/204306713029340"><a href="https://www.facebook.com/help/204306713029340">https://www.facebook.com/help/204306713029340</a></a></p>
<h2 class="h_midashi">つづき</h2>
<p>個人情報提供のリスクについて書きました<br />
<a href="https://develop.kajitori.co.jp/?p=100">https://develop.kajitori.co.jp/?p=100</a></p>
]]></content:encoded>
					
					<wfw:commentRss>https://develop.kajitori.co.jp/archives/97/feed</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>
