Heroku アプリの名前とサブドメイン
この記事の英語版に更新があります。ご覧の翻訳には含まれていない変更点があるかもしれません。
最終更新日 2023年10月02日(月)
すべての Heroku アプリにはユニークな名前とサブドメインがあります。この記事では、それらがどのように生成されるか、およびそれらの関係について説明します。
アプリ名
アプリ名はアプリケーションの一意識別子です。小文字、数字、ダッシュの 30 文字までの文字列を指定できます。アプリの作成時に、ダッシュボードで、または heroku apps:create APPNAME
を実行して名前を選択できます。
たとえば、example-app
という名前でアプリを作成すると、Heroku CLI で heroku apps:info --app example-app
を使用して、その情報にアクセスできます。
名前を選択せずにアプリを作成すると、プラットフォームによって自動的に生成されます。
Heroku プラットフォームは、この名前をアプリの URL の一部としても使用します。12 文字のランダムな識別子と組み合わされたアプリ名は、アプリのサブドメインを形成します。たとえば、example-app-1234567890ab.herokuapp.com
とします。この形式の例外は、予測可能な URL を使用するように、Review Apps を設定した場合です。
いつでもアプリの名前を変更でき、それによって新しいサブドメインが作成されます。詳細については、「CLI からのアプリの名前変更」を参照してください。
サブドメイン
デフォルトでアプリは Heroku ドメインからアクセスでき、APPNAME-IDENTIFIER.herokuapp.com
の形式になります。
サブドメイン部分は、アプリの名前と、アプリの作成時にサブドメインの一部としてランダムに生成され追加された 12 文字の識別子から構成されます。たとえば、example-app-1234567890ab.herokuapp.com
とします。この形式の例外は、予測可能な URL を使用するように、Review Apps を設定した場合です。
アプリの名前を変更すると、古いサブドメインが破棄され、新しいサブドメインが作成されます。識別子の追加は、サブドメインの再利用を軽減します。
サブドメインを含むカスタムドメインの追加など、カスタムドメインの追加については、「アプリのカスタムドメイン名」を参照してください。
アプリはサブドメインで利用できますが、本番環境のアプリについてはカスタムドメインを追加することをお勧めします。
Heroku ではサブドメインへの識別子の追加を 2023 年 6 月 14 日に開始しました。この日より前に作成されたアプリケーションは、サブドメインがアプリ名と同じである古いサブドメインスキーマが維持されます。これらのアプリの名前を変更すると、APPNAME-IDENTIFIER.herokuapp.com
の現在のスキーマを使用するサブドメインが作成されます。
サブドメインの再利用の軽減
攻撃者がターゲットドメインを制御できるようになると、サブドメインの乗っ取りが発生します。一般に、乗っ取りは、アプリケーションが非推奨になったが、その古い URL がアクティブなままで、従来のユーザーからのトラフィックをまだ受信できる場合に発生します。攻撃者は、その URL でアプリを作成し、トラフィックを傍受して、独自のコンテンツを提供できます。この乗っ取りは、フィッシング攻撃、Cookie 盗難、OAuth 許可リスト登録のバイパスにつながる可能性があります。ランダムな識別子の追加によって、アプリの削除または名前の変更後に、乗っ取りからサブドメイン名を保護することに役立ちます。
予測可能な URL を使用するように、Review Apps を設定すると、それらのアプリがサブドメインの乗っ取りの可能性にさらされる場合があります。