「403 Forbidden」って何?原因と弊社事例紹介

404ほど見かけることはないと思いますが、「403Forbidden」というエラーもあります。これはどういうものでしょう?今回もクロちゃん(猫)に会いたいニンゲンとブラウザ君のやり取りで、403エラーが表示されるまでを順番に追いながら、「どこで何が起きているのか」を分かりやすく解説します。

こちらの記事も参考にしてくださいね!

ユーザー(人間)

ブラウザ君、今日もクロちゃん(ねこ)に会いたいの!
https://neko.com/nyalbum22/kurochan.html‥‥と…(ポチ!)

ブラウザ君

「403 Forbidden」

ユーザー(人間)

……えっ、クロちゃんは!?

目次

URLの仕組みをおさらい

この前、ブラウザ君が「URLの住所をたどってWebページを見つける仕組み」を教えてくれたのを覚えていますか?
(まだ読んでいない方は 👉 ブラウザ君が教える『URLのひみつ』 をチェック!)

あの記事では、ブラウザ君がインターネットの中で住所(URL)を頼りにページを探す様子を紹介しました。
今回はその続き。

いつものようにクロちゃん(猫)のサイトを訪れていた人間。サイト内でクリックを続けてデレデレしていると、途中でこんな画面が出てきました……。

ブラウザ君

…「403 Forbiddeeeeeeen!」

ユーザー(人間)

……えっ、クロちゃん、どこ行ったの!?っていうか「Forbidden」ってなに???なんて読むの!?

403エラーとは?~ページはあるけど見せられない!

「403 Forbidden」。あれは“ページやサイトにアクセスできない”ときに出る正式な報告書です。

ちなみに「フォービドゥン」とか「フォービッデン」と読むそうです。私は「フォアバイデン」と呼んでました(照)

さて、404は「指定されたURLのページは存在しません!」という意味でしたが、今回のは「ページはあるけど入れない(見れない/見せられない)」という状態です。はい、入室(閲覧)禁止!されています。やだ・・・・でも決して意地悪されているわけではありませんよ。見せられない理由があるのです。(先に理由を知りたい方はこちらへ飛んでください!)

【ブラウザにURL打ち込みやURLクリックでページが表示されるまでの流れ】を、下の図でまたまた見てみましょう

人間がクリックや直打ちなどでURLをブラウザに送って(①)、ブラウザがネームサーバーからドメイン照合したIPアドレスをもらい(②③)、IPアドレスからウェブサーバーを突き止めてURLドメイン以下のファイルを探してもらう(④)。そんな流れでした。

例えばURLが「https://neko.com/nyalbum22/kurochan.html」だった時、ドメイン以下ディレクトリ「nyalbum22」というフォルダ内で「kurochan.html」を探すのです。

がしかし、その「nyalbum22」というフォルダ内の「kurochan.html」が見つかって、そこにアクセスするも、何らかの理由でアクセスを拒まれるわけです。 そして・・・・

突き返すわけですね。

ブラウザ君

ウェブサーバー姉さん、このファイルおくれ!

ウェブサーバー姉さん

いや、ユーには見せれない、ダメ、ダメ、ダメyo……403!

ちなみにウェブサーバーは「駄目よ!」とか「見ちゃイヤ!」とか「お断り!」とは言いません。代わりに『403!』というコードをブラウザに返します。そうしてブラウザ君は言われたとおりに、我々人間にわかる言葉でモニターに表示してくれます。

「403」とセットで出てくる英語表現「Forbidden」これは「禁止の」「禁じられた」という意味です。ちなみに「404」だと「Not found(見つからない)」という表記が出てきますね。

違いはお分かりですね?

404はWEBサーバーがファイルを探したけど見つからないときのコード。403 Forbiddenとは、Webサーバーが「ファイルは見つけたけど、何らかの理由でそのページの表示を許可しなかった」ことを表すHTTPステータスコードです。

アクセスを拒否する「何らかの理由」はいくつかあります。次の章で代表的なものを見てみましょう

なぜ403エラーが出るの?よくある原因は?

ファイルはあるのに見せられない。見せてもらえない。お断りされている・・・・理由は様々です。アクセス制限をかけているページなら、一定の条件を満たしたアクセスでなければページ閲覧できませんよね。よくある原因は、まさにアクセス権です。

① アクセス権がない

「アクセス権がない」といっても、当たり前ですが、サーバーが「〇〇さんはアクセスしていい人だからどうぞ、でもXXさんはダメですよ」という判定をしているわけではなく、機械的な処理を通して判定しています。

WEBサーバー兄さん

会員サイトや社内向けページなど、特定の人しかアクセスできないように設定されたページやサイトを考えてみるとより理解しやすいかと思います。

会員サイトの中でも、一般会員には見せず、特定の会員にだけ見せたい設定のページなどでは、ユーザーがログインしていても権限が足りずに403 Forbiddenが返されることがあります。

ブラウザ君

ウェブサーバー姉さん、このファイルおくれ!

ウェブサーバー姉さん

いや、そのIDで入ってるユーには見せれない、ダメ、ダメ、ダメyo……403!

というわけです。

会員サイトでは、権限がない場合でも、必ずしも「403 Forbidden」という画面がそのまま表示されるわけではありません。利用者に分かりやすいよう、「このページは閲覧できません」といった案内ページへ移動させたり、ページ内にメッセージを表示したりすることもあります。その裏側で実際に403を返しているかどうかは、サイトの仕組みによって異なります。

この場合の判定材料はIDやパスワードですが、判定にネットワークのIPを使用することもあります
社内向けページだと、「会社のネットワークからアクセスした」場合だけ閲覧できるように、ネットワークのアクセス制限をかけている場合もありますね。すると、会社外のネットワークでアクセスした場合「アクセス権のないあなたにはページを見せません!」と判定されて「403!」と言われてしまいます。

ブラウザ君

ウェブサーバー姉さん、このファイルおくれ!

ウェブサーバー姉さん

いや、そこからのアクセスしてくるユーには見せれない、ダメ、ダメ、ダメyo……403!

企業の社内システムなどでは、海外からのアクセスを拒否する(日本以外のIPアドレスは403とする)こともあるかもしれません。

これは安全性などを理由に、あえてアクセスできる人を制限している設定です。逆に、別のセキュリティ対策をして海外の人にも安全に公開できるようになったとしてアクセス権限を外すはずだったのが、つけっぱなしになっていたら、意図せず403が表示されてサイトにアクセスできないという事も起こり得ます

② セキュリティ対策でアクセスがブロックされた

Webサイトを守るためのセキュリティ機能が、アクセスを自動的に拒否することもあります。例えば、短時間に大量のアクセスがあったり、不自然なアクセス方法だったりすると、サーバーは「このアクセスは攻撃かもしれない」と判断することがあります。そんな時には403を出して防御することもあります。

403はあくまで「ページはあります。でも、理由はともかくあなたには表示できません」という結果のコード。「フラれちゃったのは確か。でも原因はその人じゃないとわからない」というイメージです(多分)。

というわけで、次に弊社で起こった例をご紹介します。ちょっと専門的な内容が含まれます…

弊社事例:ブラウザがHTTPS通信でアクセスした

弊社でも、あるWebサイト(SSL化未対応)で403 Forbiddenが表示されるという事例がありました。最初に考えたのは、この記事でご紹介したようなアクセス制限です。

  • ID・パスワードによる制限がかかっていないか
  • IPアドレスによるアクセス制限が設定されていないか

といった点を確認しましたが、アクセスを制限するような設定は見当たりませんでした。

「では、なぜ403になるのだろう?」

そこでブラウザ(chrome)のアドレスバーを見ると、入力したURLは「http://〇〇〇.co.jp」だったにもかかわらず、実際には「https://〇〇〇.co.jp」へアクセスしていることが分かりました。

その時は、別のブラウザ(edge)を新しく立ち上げて、手打ちで「http://〇〇〇.co.jp」と入力してみることでサイトが表示されるようになりました。(アドレスバーのところに「この通信は保護されていません」的なものは表示されますが‥‥)

ちなみにキーワード検索でそのサイトに飛ぼうとしても、検索結果画面に出てきたサイトURLをクリックすると、やはり同様に「https://」に勝手にアクセスされて403となりました。

これは常にそう、という事ではなく、翌日にはどのブラウザでも、これまで通り、アドレスバーのところに「この通信は保護されていません」的な表示がありつつも、サイトはきちんと見れている状態となっていました。

このように、403 Forbiddenは「アクセス権がない」という場合だけでなく、ブラウザとサーバーの通信方法や設定の組み合わせによって発生することもあるようです。

403 Forbidden 「理由はともかくアクセスお断り」

404との違いと合わせて説明をしてきましたが、403 Forbidden が表示された場合は、「アクセス先が存在しない」のではなく、「URLのページは実在しているけど、何かしらの理由でアクセスを断られている」状態です。
ホームページ管理者の場合は、アクセス設定を確認したりするかもしれませんが、理由は色々。もしSSL未対応のサイトの場合、https://にURLが変わってしまっていないか、確認してみてください!

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!
目次