
PHPのセキュリティに関して、
どうしても解決できないことがありますので、教えてください。
(1)「ドキュメントルートより上にファイルを置く方法」
セキュリティの本や掲示板などで、
「MYSQL等のパスワードなどが記載されたphpファイルは、
ドキュメントルートより上に置いたほうが良い」
と書かれています。
http://www.amazon.co.jp/gp/product/4883374718/sr …
https://www.xserver.ne.jp/support/support3d-30.h …
ドキュメントルートより上とは、
サイトに通常アップロードするフォルダ
(index.phpがあるフォルダ)
より上に置くということですよね。
しかしレンタルサーバーでサイト構築を行う場合、
それは不可能ではないでしょうか?
ご存じの方、恐縮ですが、
なるべく具体的に教えてください。
(2)「localhostのセキュリティー」
上記に書いたように、サイト運営はレンタルサーバーで行い、
今後も自宅サーバーで構築すう予定はありません。
それでも、htdocs内のファイルや、
localhostでPHP、MYSQLに関してもセキュリティ対策は必要でしょうか。
もし必要な場合は、必要な対策内容を教えてください。
以上お時間とりますが、何卒宜しくお願いします。

No.2ベストアンサー
- 回答日時:
《ANo.1の続きです》
> localhostに接続する際にも、
> XSSやSQL Injectionの被害を受けることはあるのでしょうか。
:
> htdocs内で単純に作ったスクリプトにも、
> 気を配らないといけなくてはならなく面倒だなと。
確かにそのとおりですが、私のことを言ってしまえば、
localhostのセキュリティ対策はあまり考えていませんし、テストで書いた
コードも置きっぱなしにしています。
可能性はありますけれど、そこまで神経質にならなくていいかなー、
と私は思います。ほかの方のご意見があったら、聞いてみたいですね。
LANケーブルを抜いておくとか、パーソナルファイアウォールを動かして
Webサーバーへのアクセスを遮断しておけば、自分以外はアクセスしてきませんよね。
(一方で、こういう安心の裏にセキュリティ被害があるわけですが)
ただ、セキュリティ対策の本質というのは、決められた項目を守るとかいう
マニュアル主義的なものではなく、常に注意を配って被害を未然に防ぐとか
被害が出てもすぐ回復できる体制を整える、とかいうものだと理解しています。
投入できる時間やエネルギーと相談して、localhostのセキュリティにも
気を配るか、あるいは万一SQLインジェクションされて被害が出ても、
すぐ回復できるようにバックアップしておくとかでしょうか。
gfct9sさん
素早い対応ありがとうございます。
なるほど、
たしかに神経質になる必要はないですよね。
WEBにアップしているスクリプトと同じものでも、
パスワードなどを変えたりするなどの配慮を行えば、
致命的な被害には合わないと思いますし。
念のため、アドバイス頂いたとおり、
バックアップには注意しておきます。
他の人の意見もあるかも知れないので、
しばらく回答は締め切りませんが、
gfct9sさんのご対応には敬服しました。
私も、もっとプログラムの技術を向上させて、
いつかgfct9sさんの様に、誰かの助けになれるように頑張ります。
また何かある際は、宜しくお願い致します。
心ある対応、本当にありがとうございました。

No.3
- 回答日時:
>localhostに接続
ローカルといえどサーバーアプリを起動したまま、ネットにも繋がっていると
そのパソコンのIPアドレスが外部から解ってしまうと
http://数値IPアドレス/
みたいなurlで外からアクセスできてしまうので、テスト用のセキュリティ不十分なプログラムが実行されてしまう、と言うところが問題になるかと思います。
ということで、No2回答でも書かれていますが、
ローカルサーバーを実行する時は、ネットワーク回路を外す。さらには、自己IP以外からのアクセスを弾くようにしておく。
ネットワークに繋げる時は、テスト用サーバーは終了しておく。
といった注意をしておけば、あとは、ファイアーウォールとウイルス対策の方に気を付けていればよいかと思います。
この回答への補足
hrm_mmmさん
コメントありがとうございます。
なるほど、locahost環境でも気をつける必要はあるんですね。
そこでアドバイスを基に、
次のセキュリティ対策を考えました。
いずれもlocalhost環境での対策になります。
少々長いですが、
博識あるhrm_mmmさんでしたら、
簡単にご理解いただけるかと思います。
(1)php.iniの設定変更
「PHPサイバーテロの技法」p212を参照
http://www.amazon.co.jp/gp/product/4883374718/sr …
php.iniの設定変更内容
allow_url_fopen=on → off
;session_use_only_cookies=1 → ;を削除
(2).htaccessの作成
アドバイス頂いた、
「自己IP以外からのアクセスを弾く」を実現するために作成しました。
参照url
http://mikeneko.creator.club.ne.jp/~lab/web/htac …
http://httpd.apache.org/docs/2.1/ja/howto/htacce …
※url2番目からも、.htaccessの作成はよろしくないようです。
もしphp.iniで作成可能でしたら、
コードを教えて頂けますと大変助かります。
.htaccessの内容
AddHandler php-script .php
Order deny,allow
Deny from All
Allow from localhost 127.0.0.1
対策は以上ですが、もう一つ問題があります。
まだPHP初心者である私は、
ネットワークに繋いで調査を行いながらでないと、
スクリプトの作成が難しい状態です。
作業効率面から、できればネットワークを維持して、
localhostを繋ぎたいのですが、
それでも回路を外したほうがいいでしょうか?
上記の私が行った対策と合わせて、
何かアドバイス頂ければ幸いです。
今回のご対応、心から感謝しております。

No.1
- 回答日時:
ドキュメントルートより上にファイルを置くのは、レンタルサーバーでは
不可能ではないかということですね。
xserverの場合はpublic_html/がドキュメントルートということですが、
これは自分専用のフォルダが/home/user/だとすれば、ドキュメント
ルートが/home/user/public_html/だということだと思います。
この場合、/home/user/public_html/index.phpは、
http://www.example.com/index.phpでアクセスできると仮定すると、
そのindex.phpの中で、
$fp = fopen('../password.txt', 'r');
なんてやったりしますと、開くファイルは/home/user/password.txtになります。
このpassword.txtはインターネットからブラウザを用いて見ようとしても
見えませんよね。もちろん/home/user/は自分専用のフォルダなので、
password.txtを設置することはできます。
しかし、/home/user/public_html/index.phpで、
$fp = fopen('password.txt', 'r');
とやった場合、開くのは/home/user/public_html/password.txtです。
確かにそこにもpassword.txtを設置できますが、これは
http://www.example.com/password.txtにアクセスすると見えて
しまいます。まずいですね。
私もとあるレンタルサーバー(共用)を利用していますが、上記と同様の
フォルダ構成になっているので、ドキュメントルートのより上にファイルを
置くことができています。
2点目のlocalhostで行うセキュリティ対策というのは何のことか
よくわからなかったのですが、もし「PHPサイバーテロの技法」の記述に
ついての質問でしたら、ページ数を指摘していただけますか。
あるいは、「セキュリティ対策」の内容について具体的に書いて頂けますと、
お答えできるとおもいます。
この回答への補足
gfct9sさん
具体的なアドバイスありがとうございます。
こんなにまで丁寧に書いて頂いて感動しています。
ドキュメントルートに関しての疑問が、ようやく解決しました。
gfct9sさんのコメントから、
「フォルダ構成はサーバーによって異なるのでは」と考え、
現在使用中のロリポップサーバーを調べた所、
ドキュメントルートより上にファイルを置けないことがわかりました。
対応してないサーバーで実現しようとしてたのが、
そもそも間違っていたのです。
セキュリティを求める際は、
対応しているサーバーを選ぶことにしますね。
gfct9sさんのおかげで安心しました。
本当にありがとうございます。
二つ目の質問は、理解しにくい内容で失礼しました。
私が悩んでるのは、
「テストしか行わないlocalhost環境にも、
サーバーテロの危険性はあるのか」ということです。
webにアップしているファイルには対策は必要でしょうが、
テスト環境にある、htdocsにあるファイルを、
localhostに接続する際にも、
XSSやSQL Injectionの被害を受けることはあるのでしょうか。
ということなんです。
その恐れがあると、
htdocs内で単純に作ったスクリプトにも、
気を配らないといけなくてはならなく面倒だなと。
「PHPサイバーテロの技法」とは関係なく、
私個人が抱えている悩みです。
説明が足りなければ、また補足させてください。
お時間とりますが、宜しくお願い致します。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- PHP どうして送信されないのでしょうか? 1 2022/12/09 05:23
- MySQL PHP 画像のアップロード Qiita 2 2022/11/28 04:44
- MySQL 「掲示板のログイン画面」はPHP~MySQLに「データベース認証のシステム」方式です。 1 2022/09/27 05:00
- PHP ファイルアップロードに関してのセキュリティについてアドバイスお願い致します 1 2023/08/20 00:25
- PHP アップロードファイルの数に応じてCSSを動的に変更したいのですが、方法がわかりません 3 2023/07/23 21:59
- その他(クラウドサービス・オンラインストレージ) VPN通信に遜色ないクラウドサービスはありますか? 4 2022/08/05 16:19
- ゴルフ ショットナビクレスト ゴルフ場データ更新について 2 2023/01/01 10:34
- サーバー Laravelをレンタルサーバーにインストールするにはどうすればいいですか? 2 2022/06/29 10:17
- PHP 「基礎からのMySQL 第3版 Kindle版」を数年前購入して全部やりました。 1 2022/09/15 05:32
- MySQL MySQL,JavaScript,PHPコードの結果を表示する方法を教えてください。 1 2023/02/13 17:49
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
mpdfにURL引数からのデータを渡...
-
PCに保存していた写真を見られ...
-
<a href="file:///フォルダ名/...
-
linux duコマンドで困っています。
-
Teratermマクロの戻り値の取得失敗
-
ネットワークフォルダの中身を...
-
サーバーに転送すると文字が大...
-
拡張子をつくる
-
MkDir パス名が無効です
-
お気に入りはどこにある?
-
フォルダー構成のみをコピーしたい
-
持っているFileのリストを作り...
-
XPでシステム移行
-
system関数のエラー検出
-
iTunesの新しいパソコンへの移動
-
Excelで外部のファイルの場所を...
-
Windowsのバッチファイルでcall...
-
VBで定期的にタイムサーバに時...
-
バッチファイルで特定のファイ...
-
ハードディスクの使用可能容量...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
localhost/~.php で404エラー
-
MFC でどうやってネットページ...
-
コメントの開始位置をそろえるには
-
初歩の初歩ですが・・・・・・。
-
PHP5のtry cacheをPHP4で実現で...
-
有料のレンタルサーバを借りた...
-
caclsエラーについて。
-
cookieとhtaccessをつかったペ...
-
PHPからファイルアップロードの...
-
mod_rewriteの正規表現
-
Zend Frameworkが機能しなくて
-
サイトが移動したわけではない...
-
javascriptとPHPを用いた自作ア...
-
PHPの教本の説明などで質問があ...
-
ECCUBE4のページ管理でPHPを実...
-
.htaccessファイルの記述方法
-
Windowsで動いていたのにFedora...
-
Subversionで単体ファイルのバ...
-
IISでhtaccessの記載
-
phpのエラーの意味がわかりませ...
おすすめ情報