• ベストアンサー

PHPのセキュリティ(ドキュメントルート・localhost)

hrm_mmmの回答

  • hrm_mmm
  • ベストアンサー率63% (292/459)
回答No.3

>localhostに接続 ローカルといえどサーバーアプリを起動したまま、ネットにも繋がっていると そのパソコンのIPアドレスが外部から解ってしまうと http://数値IPアドレス/ みたいなurlで外からアクセスできてしまうので、テスト用のセキュリティ不十分なプログラムが実行されてしまう、と言うところが問題になるかと思います。 ということで、No2回答でも書かれていますが、 ローカルサーバーを実行する時は、ネットワーク回路を外す。さらには、自己IP以外からのアクセスを弾くようにしておく。 ネットワークに繋げる時は、テスト用サーバーは終了しておく。 といった注意をしておけば、あとは、ファイアーウォールとウイルス対策の方に気を付けていればよいかと思います。

miraikuru
質問者

補足

hrm_mmmさん コメントありがとうございます。 なるほど、locahost環境でも気をつける必要はあるんですね。 そこでアドバイスを基に、 次のセキュリティ対策を考えました。 いずれもlocalhost環境での対策になります。 少々長いですが、 博識あるhrm_mmmさんでしたら、 簡単にご理解いただけるかと思います。 (1)php.iniの設定変更 「PHPサイバーテロの技法」p212を参照 http://www.amazon.co.jp/gp/product/4883374718/sr=11-1/qid=1164952057/ref=sr_11_1/503-4091124-2745559 php.iniの設定変更内容 allow_url_fopen=on → off ;session_use_only_cookies=1 → ;を削除 (2).htaccessの作成 アドバイス頂いた、 「自己IP以外からのアクセスを弾く」を実現するために作成しました。 参照url http://mikeneko.creator.club.ne.jp/~lab/web/htaccess/ http://httpd.apache.org/docs/2.1/ja/howto/htaccess.html ※url2番目からも、.htaccessの作成はよろしくないようです。 もしphp.iniで作成可能でしたら、 コードを教えて頂けますと大変助かります。 .htaccessの内容 AddHandler php-script .php Order deny,allow Deny from All Allow from localhost 127.0.0.1 対策は以上ですが、もう一つ問題があります。 まだPHP初心者である私は、 ネットワークに繋いで調査を行いながらでないと、 スクリプトの作成が難しい状態です。 作業効率面から、できればネットワークを維持して、 localhostを繋ぎたいのですが、 それでも回路を外したほうがいいでしょうか? 上記の私が行った対策と合わせて、 何かアドバイス頂ければ幸いです。 今回のご対応、心から感謝しております。

関連するQ&A

  • My Documents を localhost にしてもセキュリティは大丈夫?

    XAMPP 1.6.8 を使用です。 My Documents の中にフォルダがとても多いので ブラウザからアドレスを入力してアクセスしたいと思うのですが、 My Documents のフォルダを丸ごと localhost として設定するのは セキュリティの面で大丈夫でしょうか? localhost の中にファイルを入れることで 外部からアクセスされ易くなるか お伺いしたいと思いました。 php の動作確認など便利なので 普段は自分のウェブサイトのリンク集にアクセスする形で http://localhost/links/ をブラウザのホームページにしてます。

  • (レンタルサーバの)ドキュメントルートの配下にディレクトリーを作成して

    (レンタルサーバの)ドキュメントルートの配下にディレクトリーを作成して、ここにPHPファイルを置きましたが、自宅のブラウザーから直接PHPソースをのぞく(見る)には、どのように操作するのですか? (他者から、この配置だとソースが見られてしまうので、セキュリティー上良くないと指摘されたのですが)

    • 締切済み
    • PHP
  • PHPでFTP関数を使いたいと考えていますが、

    PHPでFTP関数を使いたいと考えていますが、 いろいろ回ってみても中々使えるサーバに出会えません。 ロリポップでは設定はされているとの記事を見かけたのですが、 ドキュメントルート以下しか使えないなど不便な面が多く使うのは控えようかと考えています。 私の探し方も上手くないのでしょうか・・・。 ある程度金額は高くても良いので(~10000円) ドキュメントルートより上も操作可能で、なおかつPHPとmysqlが使え、 PHPのftp関数がデフォルトもしくは設定にて使用可能なレンタルサーバをご存知の方は お教えいただけないでしょうか? お手数ですがよろしくお願いいたします。

  • ドキュメントルートについて

    すいません、サーバーを借りた際のドキュメントルートについてなんですが、ドキュメントルートとは同一ドメインサーバ内の公開エリアでの最上位階層のこと。ということらしいんですが、このドキュメントルートがサーバによってpublic_htmlやhtdocsの場合があるんですが、これは、 ドキュメントルート=public_html=htdocs と考えて良いんでしょうか?   また、ROOT_PATHというのは各サイトの最上位階層のディレクトリ(各サイトのindex.htmlが入っている)のことで良いんですよね? 宜しくお願いします。

  • ドキュメントルートについて(サイト公開パス)

    現在プログラミングを学んでいる超初心者です。 現在PHPを勉強中でレンタルサーバーを使い 動作確認などを行いたいのですがうまくいきません。 レンタルサーバーはウェブクロウと言うところを使っています そしてFFFTPでアップロードしても HTTP403がでたり 「このページは表示されません」になったりしいろいろ調べたりしましたが 現在お手上げ状態です。 サーバー情報に ドキュメントルートというのがありました これは何か関係があるのでしょうか? ドキュメントルートは下記のとうりです。 /home/nakahiro7/[ドメイン名]/public_html/ その他何かご指摘、方法があれば教えていただければ幸いです。 目的は PHPの動作確認、MYSQLとちゃんと連携できているかなどを確認したいです。(会員登録のような機能などちゃんとできてるか確認したい) 無知な私にどうかお知恵をおかしください。

    • ベストアンサー
    • MySQL
  • PHPでのドキュメントルート指定方法

    PHPでのドキュメントルートの指定方法がうまくいかず困っています。 マルチドメインで組んでいます。 公開ディレクトリのルートは /home/hoge/www になります。 wwwの中に/piyo/でマルチドメインを組んでいます。 →絶対リンクを/home/hoge/www/piyo/ ここに指定したいです。 あるサイトを見てcommon.phpを作成し、index.phpと同じ階層に置き、index.phpの頭に <?php include 'common.php'; ?> を指定すると設定ができると記載されていたので下記の様に設定しました。 // common.php // <?php // サーバー上の絶対パスを記入 // これは公開ディレクトリのルート(サイトのルートディレクトリ)と一致 $__DOC_ROOT__ = '/home/hoge/www/piyo/ <http://piyo.co.jp/> '; ?> // index.php // <?php include 'common.php'; ?> <!doctype html> <html lang="ja"> … <?php echo $_SERVER['DOCUMENT_ROOT']; ?> … </html> echoで呼び出してみましたがサイトのルートディレクトリが /home/hoge/www こちらになり変更されていませんでした。 これを /home/hoge/www/piyo/ に変更したいと思います。 ご回答よろしくお願い致します。

    • ベストアンサー
    • PHP
  • PHPのMySQL接続について

    Mysqlの超初心者なので質問に不備などがございましたらすみません。 次のサイト(http://blog.nextbird.com/?p=23)に掲載している通りに会員システム構築を行っております。 レンタルサーバー(Cside:mySQl使用可能)のphpmyadminでデータベースを作成しました。データベースサーバー名やパスワードなどもiniファイルに記入して接続用のファイルでincludeしています。 すべてアップロードし、試しに自分でフォーム(名前やEmailアドレスなど)に記入したところ、『Can't connect to local MySQL server through socket '/tmp/mysql.sock' 』というエラーが出ます。 『local MySQL server』ということはローカルのMysqlに関係しているようなのですが、レンタルサーバーですべてを行っているのにローカルでMySQLをインストールして設定することなどが必要なのでしょうか?Csideのphpmyadminで『phpMyAdmin 2.6.4-pl3 へようこそ』の下に 『MySQL 4.0.24 は localhost 上 *******@localhost として実行しています。』と書いてあるのも気になります。 php自体は経験有りなのですが、MySQLの接続で困っている状況です。とにかく、、『Can't connect to local MySQL server through socket '/tmp/mysql.sock' 』だけは回避したいのですが、どなたかわかりやすくお教えして頂けませんでしょうか? 分かりづらい質問で誠に申し訳ございません。

  • xamppドキュメントルートの設定

    パーフェクトPHPという書籍を見ながら作業を進めているのですが行き詰ってしまいました。 xamppのドキュメントルートの設定のところです。 ・httpd-vhosts.confファイルに以下の文章を NameVirtualHost *:80 <VirtualHost *:80> ServerName study.localhost DocumentRoot C:/xampp/htdocs/study.localhost DirectoryIndex index.php index.html <Directory "C:/xampp/htdocs/study.localhost"> AllowOverride All Allow from All </Directory> </VirtualHost> ・hostsファイルに以下の文章を 127.0.0.1 study.localhost 上記の2つを書き込むことによって ブラウザからhttp://study.localhost/にアクセスできるようになる。 と書いてあるのですが書き込んでもアクセスができず以下のように表示されます。 --------------------------------------------------------------------------- Object not found! 要求された URL は本サーバでは見つかりませんでした。 もし手入力で URL を入力した場合は、綴りを確認して再度お試し下さい。 サーバーの障害と思われる場合は、ウェブ管理者までご連絡ください。 Error 404 study.localhost Apache/2.4.10 (Win32) OpenSSL/1.0.1i PHP/5.5.15 --------------------------------------------------------------------------- 何がいけないのでしょうか? 書籍にはこの部分はあっさり書かれており何がいけないのか分りません。 Apache、MySQLの起動はできています。 httpd-vhosts.confファイルへの書き込みを行わなければXampp for Windowsのページも出てきます。 PCは windows7を使用しています。 xamppはv3.2.1です。

    • ベストアンサー
    • PHP
  • localhost/~.php で404エラー

    初心者です。PHPを勉強したいのですが、 localhost/phpファイル名 に接続すると、404 not found になってしまいます。 OSはmacです。 /Library/WebServer/Documentsに、CotEditorで作成したtest.phpを入れましたが、 http://localhost/test.php に接続しても404エラーになります。 http://localhostに接続するとIt worksと表示されますし、 PHPのLoadModuleの設定も有効になっております。 どういった原因が考えられるでしょうか。

  • ドキュメントルートのphpファイルが削除できない

    ●質問の主旨 ドキュメントルート(var/www/html)に配置した、 phpファイル(quiz.php)をrootユーザーから、root権限で rmコマンドで削除しようとしましたが、 メッセージが表示されるだけで削除できません。なぜでしょうか? ご存知の方がいらっしゃいましたら、ご教示願います。 ●質問の補足 現在のコマンドの状況は以下の通りです。 [root@linuxserver html]#rm quiz.php rm: remove regular file 'quiz.php'? [root@linuxserver html]#ls -l -rw-r--r-- root root 781 Jan 13 22:11 quiz.php またこのquiz.phpファイルはwindowsクライアントPCで作成し、 以下の経過でドキュメントルートにアップロードしました。 1.WinSCPのSFTPで一般ユーザのホームディレクトリに転送 ↓ 2.一般ユーザのホームディレクトリ(/home/user)から cpコマンドでドキュメントルート(var/www/html)にコピペ ●環境 クライアント側:windows8.1 サーバー側:Linux(CentOS6.0) サーバーソフト:Apache2.2.15