バージョン選択

フォーラム

メニュー

オンライン状況

77 人のユーザが現在オンラインです。 (67 人のユーザが フォーラム を参照しています。)
登録ユーザ: 0
ゲスト: 77
もっと...

サイト内検索

質問 > その他 > index_dev.php でデバッグできない

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2017/5/12 9:44
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
index_dev.php でデバッグできない
EC-CUBE3.0.14

index_dev.php を用いてデバッグしようと思い、$allowにグローバルIPアドレスを追加してアクセスしたところ、
「You are not allowed to access this file. Check index_dev.php for more information.」と表示されました。

var_dump()で調査したところ、以下のif文の2番目の条件がtrueになっており、$_SERVER['HTTP_X_FORWARDED_FOR']にグローバルIPアドレスと同じIPアドレス1つが格納されていました。
どうすれば解決できるでしょうか?

if (isset($_SERVER['HTTP_CLIENT_IP'])
    || isset($_SERVER['HTTP_X_FORWARDED_FOR'])
    || !in_array(@$_SERVER['REMOTE_ADDR'], $allow)
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

468
投稿日時: 2017/5/12 10:02
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: index_dev.php でデバッグできない
プロキシサーバ経由でアクセスした場合、$_SERVER['HTTP_CLIENT_IP']や$_SERVER['HTTP_X_FORWARDED_FOR']に大元のIPアドレスがセットされるみたいですね。

このif文の記述を見ていると、
クライアントがプロキシサーバ経由でアクセスした場合は、デバッグモードにアクセスさせない意図なのでしょうか?

プロキシサーバ経由の場合、大元のIPアドレスを判定に利用するようにすれば、デバッグモードにできるのでは無いでしょうか?


$remoteAddr = null;
if (isset($_SERVER['HTTP_CLIENT_IP'])) {
    $remoteAddr = $_SERVER['HTTP_CLIENT_IP'];
} else if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])) {
    $remoteAddr = $_SERVER['HTTP_X_FORWARDED_FOR'];
} else {
    $remoteAddr = $_SERVER['REMOTE_ADDR'];
}

if (!in_array(@$remoteAddr , $allow)) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

h_tanaka
投稿日時: 2017/5/12 10:16
対応状況: −−−
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: index_dev.php でデバッグできない
468さん、ご返信ありがとうございます。

if文は元からあるもので、意図はわからないです。

元々のif文の条件でエラーとしているケースを、ご指定の方法ではエラーでなくしていますが、問題ないでしょうか?

今回のケースでは $_SERVER['HTTP_X_FORWARDED_FOR'] と $_SERVER['REMOTE_ADDR'] の値が同じなので、次の実装でもいけるということですよね。

if (!in_array(@$_SERVER['REMOTE_ADDR'], $allow)
) {
    header('HTTP/1.0 403 Forbidden');
    exit('You are not allowed to access this file. Check '.basename(__FILE__).' for more information.');
}


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

468
投稿日時: 2017/5/12 11:58
対応状況: −−−
登録日: 2008/10/26
居住地:
投稿: 3217
Re: index_dev.php でデバッグできない
そうですね。
ご提示いただいた記述でも問題無いと思います。

念の為、開発が完了し、実運用を始めた後は、
デバッグモードに接続できないようにIPアドレスのリストを削除しておけば良いかと思います。


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
EC-CUBE3マニュアル
blog

h_tanaka
投稿日時: 2017/5/12 12:01
対応状況: 解決済
登録日: 2016/7/22
居住地: 愛媛県
投稿: 1610
Re: index_dev.php でデバッグできない
根本的な原因がわからないのがモヤッとしますが、これで問題は回避できましたので解決とします。

ありがとうございました。


----------------
EC-CUBE 《プラチナ》ランクパートナー
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

スレッド表示 | 新しいものから 前のトピック | 次のトピック | トップ


 



ログイン


EC-CUBE公式 Amazon Payプラグイン

統計情報

総メンバー数は88,303名です
総投稿数は109,692件です

投稿数ランキング

1
seasoft
7365
2
468
3217
3
AMUAMU
2712
4
nanasess
2303
5
umebius
2085
6
yuh
1818
7
h_tanaka
1610
8
red
1568
9
mcontact
1240
10
tsuji
958
11
fukap
907
12
shutta
835
13
tao_s
796
14 ramrun 789
15 karin 689
16 sumida 641
17
homan
633
18 DELIGHT 572
19
patapata
502
20
flealog
485


ネットショップの壺

EC-CUBEインテグレートパートナー

Copyright© EC-CUBE CO.,LTD. All Rights Reserved.