バージョン選択

フォーラム

メニュー

オンライン状況

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

PR

デザインテンプレート EC-CUBE3.0版が登場!
広告掲載について

サイト内検索

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

その他

新規スレッドを追加する

スレッド表示 | 新しいものから 前のトピック | 次のトピック | 下へ
投稿者 スレッド
h_tanaka
投稿日時: 2017/5/12 9:44
対応状況: −−−
長老
登録日: 2016/7/22
居住地: 愛媛県
投稿: 290
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の機能やデザインのカスタマイズ承ります。

468
投稿日時: 2017/5/12 10:02
対応状況: −−−
仙人
登録日: 2008/10/26
居住地:
投稿: 615
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系構築カスタマイズご相談ください。
■360°画像ビューワーimg360
■ECCUBE技術資料blog

h_tanaka
投稿日時: 2017/5/12 10:16
対応状況: −−−
長老
登録日: 2016/7/22
居住地: 愛媛県
投稿: 290
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の機能やデザインのカスタマイズ承ります。

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

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


----------------
株式会社シロハチ
■ECCUBE2系、3系構築カスタマイズご相談ください。
■360°画像ビューワーimg360
■ECCUBE技術資料blog

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

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


----------------
トエビス株式会社 田中 宏典
EC-CUBEの機能やデザインのカスタマイズ承ります。

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

 



ログイン


EC-CUBEペイメント

クレジットカード情報の非保持化対応

統計情報

総メンバー数は19,623名です
総投稿数は82,108件です

投稿数ランキング

1
seasoft
7331
2
AMUAMU
2712
3
nanasess
1632
4
yuh
1366
5
red
1059
6
fukap
907
7
shutta
827
8 ramrun 789
9
tsuji
782
10
umebius
671
11
tao_s
646
12 sumida 638
13
homan
633
14
468
615
15 karin 609
16 DELIGHT 571
17
patapata
502
18
flealog
483
19 tonton 436
20
ecbg
387


ネットショップの壺

EC-CUBEガイドブック
Copyright© LOCKON CO.,LTD. All Rights Reserved.