IISで外部サーバーへのリバースプロキシを設定する方法

3
bugmagnet 2020-07-17 23:49.

したがって、私たちが考えているシナリオは次のとおりです。

IFRAMEがあります。上記のIFRAMEは、上のリソースをポイントしたいと考えていhttps://trees.comます。たとえば、https://trees.com/ficus/macrophylla。ただし、へのすべてのリクエストにもかかわらずtrees.com、サイトへの直接リンクを許可することを拒否し、クロスオリジンリクエストをブロックします。

そこで、リバースプロキシを設定することにしました。nginxとapacheについて聞いたことがありますが、良くも悪くも、Microsoftのテクノロジに対する企業のコミットメントがあるので、IISを支持することにします。

Azureサーバーの1つを使用して、Webサイトを作成しますhttps://figs.wild.com.au。これを呼び出しましょう。リクエストがhttps://trees.com/ficus/macrophylla実際にに送信されるようにIFRAMEを構成しますhttps://figs.wild.com.au/trees/ficus/macrophylla

この時点で、私たちは少し気が狂います。

サーバーhttps://figs.wild.com.au/trees/ficus/macrophylla上でリクエストをリクエストに変換し、そのリクエストへの応答をIFRAMEリクエストの発信者にフィードバックすることは実際に可能ですか?figs.wild.com.auhttps://trees.com/ficus/macrophylla

私たちは多くの検索を行い、ほとんど機能するものを見つけ続けてます。実際には何が機能しますか?IISのURL書き換えは使用するものですか?もしそうなら、ルールはどのように見えるべきですか?または、代わりにC#-yのものを使用する必要がありますか?

2 answers

1

私が行くなら http://www.trees.com/ficus/macrophylla ブラウザを使用すると、

私が行くなら http://www.trees.com/ また、次のようになります


trees.comへのSSLリクエストの使用

「ここをクリックして不一致を無視します...」をクリックすると、次のようになります。

構成では、

TLS 1.0、1.1、1.2、1.3がサポートされていることがわかります。ただし、TLS1.2および1.3の場合は緑色です。

TLS1.3を使用するようにPowerShellを構成できます

[Net.ServicePointManager]::SecurityProtocol = [Net.SecurityProtocolType]::Tls13

そしてそれがそれを使用することを確認します

[Net.ServicePointManager]::SecurityProtocol


PowerShell(管理者として)で、Invoke-WebRequestを使用する場合

Invoke-WebRequest -Uri trees.com/ficus/macrophylla

その後、取得します

そして使用する場合

Invoke-WebRequest -Uri trees.com

その後、取得します


ここまでは順調ですね。しかし、CORSについてテストしたい場合はhttps://figs.wild.com.au、

(Invoke-WebRequest -Uri 'http://trees.com' -Headers @{ "Origin" = "https://figs.wild.com.au" }).Headers

我々が得る

Key                           Value
---                           -----
Transfer-Encoding             chunked
X-Adblock-Key                 MFwwDQYJKoZIhvcNAQEBBQADSwAwSAJBAL/3/SrV7P8AsTHMFSpPmYbyv2PkACHwmG9Z+1IFZq3vA54IN7pQcGnhgNo+8SN9r/KtUWCb9OPqTfWM1N4w/EUCAwEAAQ==_FamzgofQ7ugTniHINrZ7yp35i/Nqkt7q/gZsgPGyvhOwIQhj04Bd9+/nir6OLAFDPB56kU4m0GgS7SvEoFqRbQ==
Access-Control-Allow-Origin   *
Access-Control-Allow-Methods  *
Access-Control-Request-Method *
Access-Control-Allow-Headers  *
Access-Control-Max-Age        86400
X-UA-Compatible               IE=Edge,chrome=1
X-Request-Id                  556905ec3cb435a1168cc1b28d70875f
X-Runtime                     0.048014
X-Rack-Cache                  miss
Cache-Control                 max-age=0, private, must-revalidate
Content-Type                  text/html; charset=utf-8
Date                          Mon, 20 Jul 2020 09:40:37 GMT
ETag                          "8e51e434b70033ee6a90cb7397af53f9"
Set-Cookie                    _digiadmin2_session=BAh7B0kiD3Nlc3Npb25faWQGOgZFVEkiJTNmOWRlMDA5NjRiZWZlMzgyZTRmN2NlOWIzZmQxZjIzBjsAVEkiEF9jc3JmX3Rva2VuBjsARkkiMVFOckhMdElRMWc1cGZBcGl5OGQ1WkVNeXo3elpobWRwc2QyR0djTFlNUEE9BjsARg%3D%3D--e55261be794bb9f95ee407c73a3e2b315ef...
Server                        nginx/1.10.1

Access-Control-Allow-Originの値がアスタリスク(*)であることに注意してください。これは、すべてのドメインが許可されることを意味します。次に、次のコマンドを使用すると

Invoke-WebRequest -Uri 'http://trees.com' -Headers @{ "Origin" = "https://figs.wild.com.au" }

次の結果が得られます


つまり、クロスオリジンリクエストを許可し、質問で言及しているようにブロックしません。説明のためだけに架空のURLを提供している可能性があります。

1

質問とコメントを考慮すると、ここに示すように、IISでは外部URLへのリダイレクトが可能です。

<system.webServer>
  <rewrite>
    <rules>
      <rule name="External Redirect" stopProcessing="true">
        <match url="^VirtualDirectory" negate="true" />
        <conditions>
          <add input="{HTTP_HOST}" ignoreCase="true" negate="true" pattern="hostname"/>
          <!-- add this input condotion to make this redirect url not work with http://hostname/VirtualDirectory -->
        </conditions>
        <action type="Redirect" url="{your url}" redirectType="Found" />
      </rule>
    </rules>
  </rewrite>
</system.webServer>

また、NGIXを使用して単純なリダイレクトが可能であり、たとえば、この回答で対処されています。

server {
    listen 80;
    server_name     example.com;
    return          301 http://www.example.com$request_uri;

server {
    listen 80;
    server_name     www.example.com;
    [...]

そしてこの答えでは

server {
  listen 80;
  server_name localhost;
  merge_slashes off;

  location /rdr {
    location /rdr/http:// {
      rewrite ^/rdr/(.*)$ $1 permanent; } rewrite ^/rdr/(.*)$ http://$1 permanent;
  }
}

ただし、必要なのは、そのページのコンテンツを表示することではなく、そのデータを任意の場所に保存してから、再度リダイレクトすることです。そのデータは、IFRAMEにフィードするためにどこから来るのでしょうか?


これを行う代わりにredirect > save data > redirect、個別に行うことをお勧めします。具体的には、からデータを取得しますhttps://trees.com/ficus/macrophylla の場所に保存します https://figs.wild.com.au/trees/ficus/macrophylla そのファイルから必要なものをIFRAMEに使用します。

その場所にあるファイルのコンテンツを取得するには https://trees.com (JSとCSSが他のファイルから取得されていない場合)それをhtmlファイルに保存すると、次のようになります。

from urllib.request import urlopen
html = urlopen("http://trees.com").read().decode('utf-8')
#print(html)
with open("test.html", "w") as file:
    file.write(html)

これにより、このスクリプトの同じ場所にあるtestという名前のHTMLファイルにコンテンツが保存されます。

(CSSとJSも必要な場合は、このSOの質問を確認してください)。

その喧騒を乗り越えたくない場合は、完全なWebサイトをダウンロードできるHTTrackのようなツールがあります。これにより、マップサイトを知る必要がなくなり、考えられるバリエーションを繰り返すことができます。


私はあなたが望むものの便利さを見ることができます。さらに調査し、これを行うための超自動化された方法が見つかったかどうかをお知らせしますが、「そのデータはIFRAMEにフィードするためにどこから来るのか」を知るのに役立ちます。

Related questions

MORE COOL STUFF

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは3日間一緒に夫と一緒に寝て、25年経ってもまだ夫と結婚しています

ケイト・ブランシェットは、夫に会ったとき、典型的な交際のアドバイスに逆らいました。

マイケルシーンが非営利の俳優である理由

マイケルシーンが非営利の俳優である理由

マイケルシーンは非営利の俳優ですが、それは正確にはどういう意味ですか?

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

ホールマークスターのコリンエッグレスフィールドがRomaDramaLiveでスリル満点のファンと出会う![エクスクルーシブ]

特徴的なスターのコリン・エッグレスフィールドは、RomaDrama Liveでのスリル満点のファンとの出会いについて料理しました!加えて、大会での彼のINSPIREプログラム。

「たどりつけば」をオンラインでストリーミングできない理由

「たどりつけば」をオンラインでストリーミングできない理由

ノーザンエクスポージャーが90年代の最も人気のある番組の1つになった理由を確認するには、Blu-rayまたはDVDプレーヤーをほこりで払う必要があります。

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

バイオニック読書はあなたをより速く読むことができますか?

バイオニック読書はあなたをより速く読むことができますか?

BionicReadingアプリの人気が爆発的に高まっています。しかし、それは本当にあなたを速読術にすることができますか?

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖:アクセスは簡単ではありませんが、ハイキングする価値があります

ドミニカのボイリング湖は、世界で2番目に大きいボイリング湖です。そこにたどり着くまでのトレッキングは大変で長いですが、努力する価値は十分にあります。

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

私たちの水をきれいに保つのを助けるためにあなたの髪を寄付してください

サロンからのヘアトリミングや個人的な寄付は、油流出を吸収して環境を保護するのに役立つマットとして再利用できます。

これらの22ドルのBluetoothイヤフォンであなたの次のジョギングのコードを切ってください

これらの22ドルのBluetoothイヤフォンであなたの次のジョギングのコードを切ってください

取引を投稿するたびに、これらのMpow Swift Bluetoothイヤフォンを大量にスナップしますが、この時点まで見逃していた場合は、別のチャンスがあります。スマートウォッチを所有していて、近くに電話がなくても音楽を聴きたい場合は、これらは必須ですが、ジョギング、芝刈り、またはその他の取得したくないアクティビティにも最適です。ワイヤーに絡まっています。

オフサイドコールを逃したことで2回目の残業でライトニングウィン

オフサイドコールを逃したことで2回目の残業でライトニングウィン

タンパベイは、モントリオールとのスタンレーカッププレーオフシリーズで1-0のリードを奪い、ライトニングのニキータクチェロフが、ベルセンターでの2回目の延長戦の2分後にネットを見つけ、2-1の最終スコアを獲得しました。しかし、ハブスのファンは、勝った所有物のゾーンにパックを持ち込んだときにタンパベイが明らかにオフサイドだったという事実について当然のことながら騒いでいます:誰もがサドンデスの残業プロセスの欠陥を探すべきではありませんが、これはサドンデスの残業の終焉を求める恐ろしい人が指摘するようなもの。

ホラー:H1Z1の発売の舞台裏

ホラー:H1Z1の発売の舞台裏

ゲームを起動するのは難しいです。では、世界を見て注目を集めるタイトルをリリースし、事態が悪化するとどうなるでしょうか。多くの物。

Be My Eyesは、救いの手を必要とする視覚障害者とボランティアをペアにします

Be My Eyesは、救いの手を必要とする視覚障害者とボランティアをペアにします

iOS:ご想像のとおり、視覚的な手がかりのない最も単純な決定でさえ、非常に困難な場合があります。Be My Eyesは、ライブビデオフィードを通じて、目の見える人と視覚障害者を結び付け、その名前が示すように、目であり、オブジェクトを読んだり、周囲をナビゲートしたりするのに役立ちます。

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

Plathville の Kim と Olivia Plath が数年ぶりに言葉を交わすことへようこそ

イーサン プラスの誕生日のお祝いは、TLC のウェルカム トゥ プラスビルのシーズン 4 のフィナーレで、戦争中の母親のキム プラスと妻のオリビア プラスを結びつけました。

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

ケイト・ミドルトンはロンドンの水辺で一日を過ごし、さらにジェニファー・ロペス、ジュリアン・ハフなど

ケイト・ミドルトンはロンドンの水辺で一日を過ごし、さらにジェニファー・ロペス、ジュリアン・ハフなど

ケイト・ミドルトンはロンドンの水辺で 1 日を過ごし、ジェニファー・ロペス、ジュリアン・ハフなども。ハリウッドからニューヨークまで、そしてその間のあらゆる場所で、お気に入りのスターの活躍をご覧ください!

ウィスコンシン川でのナイフ攻撃で 17 歳の少年が刺されて死亡、他の 4 人が負傷したままになっている

ウィスコンシン川でのナイフ攻撃で 17 歳の少年が刺されて死亡、他の 4 人が負傷したままになっている

捜査官は、グループと容疑者が攻撃の前にお互いを知っていたかどうかを調べています

滑走路着陸

滑走路着陸

晩夏と秋はノスタルジックな季節。街灯は雨で濡れた通りに光を放ち、足元の葉 - 夕暮れの影の中で落ち着いた赤オレンジ - は過ぎ去った日々を思い出させます。

実際に変換するコンテンツ戦略を作成することを想像してみてください。それが可能だ。

実際に変換するコンテンツ戦略を作成することを想像してみてください。それが可能だ。

2021 年には、サービスを提供する顧客と顧客に伝えるストーリーについて知っていることをすべて再考することをお勧めします。あとずさりする。

マンモスロスは私の心を愛に開いた

マンモスロスは私の心を愛に開いた

フェリックス ザ キャットの 9 歳の誕生日の日に、大人になってからの最大の損失の 1 つである 2013 年のソフィーを思い出します。私はこのエッセイを書き、2013 年にこのプラットフォームで簡単に共有しました。

あなたがインターネットがあなたに望んでいる人になれないとき

あなたがインターネットがあなたに望んでいる人になれないとき

私は「列車事故」という言葉が嫌いです。人々は自分自身の道徳的羅針盤に安らぎを覚え、そうすることで自分自身が判断を下していることに気づきます。

Language