PHPの管理者ページのアクセス制限について

このQ&Aのポイント
  • PHPの管理者ページのアクセス制限について調べた結果、.htaccessを使用して特定のIPアドレスのみアクセスできるように設定する方法が推奨されています。
  • 管理者用ページへのアクセスを制限するために、難解なディレクトリ名、phpファイル名、ID、パスワードを使用することも効果的です。
  • 一般的には適切なセキュリティ対策を講じることが重要であり、特に管理者ページの認証には注意が必要です。
回答を見る
  • ベストアンサー

PHPの管理者ページのアクセス制限について

phpで会員制サイトの制作を勉強中です。 pdoでmysqlデータベースに接続しています。 現在、管理者ページの作成を勉強中なのですが、 疑問に思ったことがあります。 IDとパスワードで認証し、 管理者用ページのファイルの内容を表示する仕組みにしたら、 よほど難解なディレクトリ、phpファイル名、ID、パスワードにしないと 認証が通ってしまいそうな気がします。 調べてみると、参考書には管理者ページのパスを .htaccessで特定のIPアドレスにのみアクセス許可を与えるように記述されていました。 管理者用ページのphpファイルへは 難解なディレクトリ、phpファイル名、ID、パスワードにした上で 特定のIPアドレスのみアクセスできるように.htaccessで設定した方が良いでしょうか? そこまで気負う必要はないのでしょうか? 一般的に管理者用ページの認証が どのように作られているか気になります。 ご回答よろしくお願いします。

  • PHP
  • 回答数3
  • ありがとう数10

質問者が選んだベストアンサー

  • ベストアンサー
回答No.1

IPなんて固定で運用していないと変わっちゃうからね。 都度変えるのはナンセンス。 確実にそのIPからしかアクセスしないっていうのであれば、それも設定しておけばいいと思うけど。 ディレクトリ構造、phpファイル名は関係ない。 その管理ページでログインしているかどうかを見るのがふつう。 セッションで管理することが多いかな? んで、もし外部からアクセスされては困るものに関しては公開ディレクトリより上に配置してphpで読み込んで表示する。 IDとパスワードはそりゃ難解のにするか、リトライの回数を制限しないとだめだよね。

mmm5orz
質問者

お礼

ご回答ありがとうございます! なるほど、ディレクトリ構造は関係ないのですね。 プログラムについて教えてくれる教室で、CGIの授業も一緒に受講しており、 CGIではディレクトリ構造を複雑にするよう言われたため、 PHPでもてっきりそうなのかと思ってしまっていました・・・。 セッション管理とリトライ回数の制限は確かに必要ですね。 大変参考になりました!

その他の回答 (2)

  • pringlez
  • ベストアンサー率36% (598/1630)
回答No.4

>そこまで気負う必要はないのでしょうか? 簡単な構成ほどハッキングしやすく、複雑な構成ほどハッキングはしにくいというのは当たり前のことです。簡単なパスワードだったら銀行の口座だってハッキングしてお金を引き出し放題になります。 ハッキングされてもいいようなどうでもいいシステムだったら、ID「admin」、Pass「admin」でいいでしょう。 何が何でもハッキングされたくないのだったら、考えられる対策はすべてすべきでしょう。一番いいのは外部ネットワークと分離し、内部からしか接続できなくすることです。 システムの重要度を判断し、どの程度の対策が必要かを考え、判断するのはあなたです。

mmm5orz
質問者

お礼

ご回答ありがとうございます! やはり、特に重要なのはIDとパスワードを難しいものにすることですかね・・・ >一番いいのは外部ネットワークと分離し、内部からしか接続できなくすることです。 内部からのみの接続ですか。 いまいちどのような仕組みにすれば良いのかわかりませんが、調べてみます! ご回答、ありがとうございました!

  • t_ohta
  • ベストアンサー率38% (5061/13226)
回答No.2

基本的には管理者用ID/Passで認証したら認証結果をセッションで管理し、管理者ページの各ページで認証済みユーザーのアクセスかチェックをしてから出力するようプログラムします。 そうすれば、管理者用ID/Passが流出したり破られたりしない限り管理者ページを見られる心配はありません。 但し、インターネット上で通信の内容を傍受される可能性はゼロではありませんから、重要な情報が扱われるのであればSSLで暗号化するといいでしょう。

mmm5orz
質問者

お礼

ご回答ありがとうございます! やはりページごとのセッションでの管理が重要ということですね。 >重要な情報が扱われるのであればSSLで暗号化するといいでしょう。 クレジット情報等は扱いませんのでSSLは必要ないかもしれませんが、今後の為に勉強してみます。 ご回答、ありがとうございました!

関連するQ&A

  • (新)無料FC2でアクセス制限

    こんばんは、Skireです。 タイトル通りをしたいのですが、何故かできません。 出来ているかどうかを確認するために 自分のIPアドレスをhtaccess.htaccessと書いたファイルの中の deny from ----- といった形で書きこんだのですが 何の反応も示してくれません。 見事にページが表示されてしまいます。 もしかしてFC2のアクセス制限とは パスワードでの認証のみなのでしょうか? 手順通りにやるとそれしかできないのです。 私としては特定の相手をはじきたいだけなので パスワード認証とまではしたくないのです。 .htaccessとFTPが使えるということで FC2を選んだのですが・・・もしやこれは失敗なのでしょうか。

  • ディレクトリへのアクセス制限

    htaccessを使って、ディレクトリへのアクセス制限をしたいのですが。 できれば、IDとパスワードの発行、管理はMySQL プログラムはPHPで作成したいと思っています。 いまいち、htaccessを使っての制限方法の仕組みが よく分かっていないのですが、サンプルコードかフリーのプログラムが あれば教えていただけないでしょうか?

    • 締切済み
    • PHP
  • 特定のページだけアクセス制限したい

    ホームページビルダー6の機能に依存してwebページを作っているので、複雑な知識はよくわかりません・・・。 現在、会社のホームページを制作・公開しているのですが、ある特定のページ(5ページほど)はパスワードを発行して、パスワードでログインしないと閲覧できないようにしたいのです。 レンタルサーバーのQ&Aを読みましたところ、telnetで接続して.htaccessを使う・・・・など、わたしにはさっぱりなことが書いてありました。 他には、レンタルサーバーの管理者メニュー画面の、ファイルマネージャーからですと容易にパスワードがかけられるのですが、この方法だと、サイトの入り口(index.html)からすべてパスワードがかかってしまいました。ファイルマネージャーでは、特定のページにアクセス制限を設定する複雑なことは出来なさそうです。 .htaccessのことを学べばいずれは出来るようになるのでしょうが、何せ仕事のことで急かされ、時間がありません!毎日、出来たかどうか聞かれます; 何か簡単な方法は無いものでしょうか?世の中のパスワードページを作っていらっしゃるかたは、皆このような難しい事を学んでいらっしゃるのでしょうか。 何か簡単な方法があれば大変助かるのですが・・・。

  • WordPressの特定のページの閲覧制限

    現在WordPressでサイトを作っているのですが、特定の「ページ」だけ許可したIPからしかアクセスできないようにしたいと考えています。 理想的には.htaccessなどを使ってサーバー側で制限できれば良いのですが、WordPressの「ページ」は実際にファイルやディレクトリがあるわけではないので、.htaccessが効くのかどうかがよくわかりません。 もし.htaccessなどで制限が可能でしたら、その方法を教えてください。そうでない場合は、何か他の手段があればぜひ教えてほしいです。 よろしくお願いします。

    • 締切済み
    • PHP
  • .htaccessでアクセス制限をかけたディレクトリの下の階層のディレクトリのアクセス制限

    はじめまして、とあるWEBデザイナーです。 会社のサイトをホスティング会社にお願いして 専用サーバーで保守管理してもらっています。 表題の件なのですが、.htaccessでアクセス制限を かけたディレクトリの下の階層にある ディレクトリにアクセス制限をかけてID、パスワード を入力させるようにしたいのですが、 .htaccessについて調べてみたところ、 .htaccessはアクセス制限をかけた以下のすべての ディレクトリが有効範囲になるため、 すでにアクセス制限有効なディレクトリに 重複して設定することは出来ない ということが分かりました。 このようなケースの場合、ディレクトリに アクセス制限をかけるにはどうしたら よいのでしょうか? CGIなどでプログラムを組むのでしょうか? それともWebサーバー側で設定などするのでしょうか? 当方、フリーのCGIやPHPを少し改造できる程度です。 こういう場合、普通はどうされているのか、 どんな情報でもかまいませんので お教えいただけると幸いです。

  • パスワードによるアクセス制限(.htaccess)

    Win2000、Apache/2.0.55 (Win32) PHP/4.4.0 Server の環境です。 基本的なことをお伺いします。 ◆.htpasswdによるアクセス制限は実現できたのですが、さらに特定のディレクトリ配下を見せたくない場合の設定の仕方が分かりません。 ◆最初、.htpasswdの認証画面が取れて、home/index.htmlに一度アクセスしてしまうと、その周辺にある(例えばhome/data/など)他のディレクトリのアドレスを打ち込むことで、 「Index of …/home/data」のタイトルで、 Name Last modified Size Description : のようなファイル一覧が表示されてしまいます。 これらを見せたくないので、ガードを掛けたい(403 Forbiddenなどを出させたい)のですが、やり方が分かりませんでした。 当該ディレクトリ内に、.htaccessファイルを置いただけではダメなのでしょうか。 apache2/conf/httpd.conf ファイルには、 AccessFileName .htaccess <Files .htaccess> Order allow,deny Deny from all </Files> のように記述はしています。 このOKWeb内で他の方の質問&回答を色々と調べさせて頂いたり、Googleなどでタイトル名を入れて、見つかったページを参考にしてみたりするのですが、解決できませんでした。 どうか、よろしくお願いいたします。

  • .htaccessで階層より上まで制限が掛かるのはなぜ?

    ホームページ内の、あるディレクトリにパスワード制限を掛けています。 .htaccessに ----- AuthUserFile /home/sites/ディレクトリへのパス AuthGroupFile /dev/null AuthName "認証" AuthType Basic require valid-user <Files ~ "^.(htpasswd|htaccess)$"> deny from all </Files> ----- と記述し、htpasswdにパスワードを記述しています。 その該当ページに入るときは、ちゃんと認証の小窓が出てきて、 IDとパスワードを入力しないと見れないようになっていますが、 問題は階層上のTOPページにアクセスしても、その小窓が出てくるようになった事です。 他の同階層のディレクトリにアクセスしても小窓は出ません。 小窓自体はIDとパスワード入れなくても「キャンセル」をクリックする事で見れます。 これはどうなっているのでしょうか? パスが間違っているのでしょうか?

  • サイトへの「ime.nu」からのアクセスを制限したい

    こんにちは。お世話になります。 「FC2ホームページ」さんにて、無料版でWebサイトを持っています。 少し趣味が偏っているので、同ジャンルの同じ趣味の人だけが入れるように、インデックスを除いた以下ディレクトリに、ベーシック認証型のアクセス制限をかけて、インデックスに入室のためのIDとPASSのヒントを載せて公開していました。 サイト自体は(地味に活動したかったので)検索サイト等には一切登録せず、mixi(友人のみ公開)や友人のサイトのリンクからのみインデックスにつながる、という形でやっていましたが、最近2ちゃんねるらしい掲示板にサイトのインデックスURLを曝されたようで、頻繁に同じリンク元からアクセスがあります。 とりあえずは入口を別ディレクトリに変更する等してしのぎたいと思っていますが、今後の対策として、「ime.nu」からのアクセスをブロックしたいと考えています。 FC2サーバーで、特定のリンク元からのアクセスを弾くような制限はかけられるんでしょうか?「.htaccessでime.nuをはじく」という方法を紹介しておられるページを見ましたが、自分でファイルを用意して設置しなければいけないようですので、まだ試していません+ちょっとそこにはやり方が詳しく書かれていなかったので、どうやったらいいか分かりませんでした。 ftpソフトは使っていますが、ベーシック認証のみFC2ホームページの管理ページから簡単に設定できるものしか使った事がありません。.htaccessについて、詳しい知識がありませんもので… 「.htaccessでime.nuをはじく」方法について、詳しい方法をお教え頂ければ嬉しいです。よろしくお願いします。

  • BASIC認証の画面すら出したくないとき

    私は、.htaccess(BASIC認証)で、趣味の会員制サイトを運営していますが、パスワードを教えていない人が、頻繁にアクセスしてくることで、悩んでいます。 サーバーのエラーログを見て、つい最近気づいたのですが、知ればなんとなく気持ち悪くて、どうにかしたいと思うようになりました。 相手(複数いる)のIPアドレスは分かっています。 こういう場合、特定のIPアドレスは違うページに飛ばして、BASIC認証の画面すら見せないようにする設定が、.htaccessでできますでしょうか? 認証の画面を出したくない理由は、色々なパスワードで繰り返しトライされるのが嫌なのと、その飛ばしたページで、「入室したいのであれば、パスワードの請求をして欲しい」ということを、説明したいと思っています。 自分で調べた限りでは・・特定のIPだけは認証なしで通して、それ以外に認証をかけるというのならば、例をいくつも見つけたのですが、特定のIPだけは飛ばして、それ以外に認証をというのを、見つけることができませんでした。 お手数ですが、教えていただけますと幸いです。 どうぞよろしくお願いします。

    • ベストアンサー
    • HTML
  • Webページをアクセス制限したい

    以前に質問したのですが、有効なアドバイスが得られませんでしたので、再度質問いたします。 Webページにアクセス制限をかける方法を教えてください。 アクセス制限したいファイルは /var/www/awstats/awstats.pl です。 ただ、/var/www/awstats以下に.htaccessで制限をかけようと思いましたが、これはできませんでした。 /var/www/html以下では.htaccessが使えるようですので、やり方が間違っているわけではなさそうです。 なお、IPアドレスからのアクセス制限はネットワークの関係でできません。 よろしくお願いします。