システムを Google App Engine に移行しています。
PDF ジェネレーターが外部リソース (画像など) を必要とする場合、内部 HTTP 要求を行います (要求 IP はユーザー IP とは異なります)。その後、別のセッションも開始されるため、ユーザーがログに記録されているかどうかを確認できません。適切なアクセス許可を付与するには、リクエストがサーバー IP からのものかどうかを確認する必要があります。
前のコードでは、次のコードでこれを確認しました。
if($_SERVER['REMOTE_ADDR'] == $_SERVER['SERVER_ADDR']) {
return true;
}
しかし、$_SERVER['SERVER_ADDR'] が利用できないため、これは使用できません。
新しいコードでは、次のコードを使用してこれを確認します。
$allowed_ips = array(
'127.0.0.1',
'8.35.201.100'
);
if(in_array($_SERVER['REMOTE_ADDR'], $allowed_ips)) { return true; }
問題は; Google App Engine が内部リクエストを行うために使用する IP アドレスがわかりません。サーバーアドレスとして IP アドレス 8.35.201.100 を見つけましたが、それ以上の IP アドレスまたは範囲があるのでしょうか。
タスク キュー Google App Engine は、IP アドレス 0.1.0.2 ( https://developers.google.com/appengine/docs/php/taskqueue/overview-push#Task_Execution ) からリクエストを発行します。これは内部要求でも同じですか。
ごきげんよう、ヘンドリック