Skip to main content

 

 

 

 
Language:
 
 
 
OutSystems

エラー: アプリケーション内の予期しないリンク(HTTPSからHTTPへの変更または内部サーバー名の表示)

症状

OutSystemsプラットフォームを使用して開発されたアプリケーションで、リンクが適切に動作しなくなります。ほとんどのリンクは期待どおりに機能し、それらのリンクを介してアプリケーションを操作できます。

しかし、アプリケーションの一部のリンクが正しく動作しません。以下は、誤動作と考えられる事例の一部です。

通常、この種の問題は本番環境で発生し、他の(本番環境より前の)ステージング環境(開発、テストなど)では発生しません。

また、影響を受ける環境でも、http://127.0.0.1/でアクセスして、サーバーのローカルで実行されているブラウザでアプリケーションにアクセスした場合、問題は通常発生しません。

原因

通常、この種の問題が発生するのは、環境でエンドユーザーとOutSystemsプラットフォームの間にネットワークレイヤー(ロードバランサまたはリバースプロキシ)がある場合です。このようなシナリオで、こうしたレイヤーが正しく構成されていない場合、誤った情報がプラットフォームに送信される可能性があります。

一般にOutSystemsプラットフォームは「相対」リンクを生成します。つまり、他のページへのリンクは現在のパスを基準としてコードに挿入されます。例:

  • ./NextScreen.aspx

  • ./img/logo.png

  • /MyWidgets/SomeFancyJavascript.js

ただし、状況によってはプラットフォームで絶対URLを生成する必要があります。そのような状況では、フロントエンドで受信した情報に基づいてURLが生成されます。特に以下については、アプリケーションサーバーに到達したリクエストから推測されます。

  • プロトコル(HTTPまたはHTTPS)

  • ホスト名(HTTPリクエストのホストヘッダー経由)

ネットワークレイヤーがこの情報をターゲットサーバーに正しく渡せる構成になっていない場合、「症状」に示した誤動作が発生する可能性があります。

解決策

この問題の解決方法は以下のとおりです。

a) HTTPS / HTTPの問題

以下のどちらかを実行します。

  • プロトコルの完全なパススルーを実行する(つまり、エンドユーザーがHTTPSとして開始したリクエストは、必ずHTTPSとしてOutSystemsアプリケーションサーバーに送信する。HTTPについても同様)

  • HTTPSからHTTPへのオフロードを適切に設定するようプラットフォームを構成する

b) ホスト名の誤り

元のホストヘッダーをアプリケーションサーバーに渡せるようにネットワークレイヤーを構成します。

プロパティ

OutSystemsプラットフォームのすべてのスタック。

バージョン8.0.x.x以降(最終確認は9.1.600.0)。