アプリケーションを使用して、HTTP 画像の URL を RSS に表示しています。しかし、この画像を HTTPS サーバーにロードし、Internet Explorer で開くと、セキュリティ警告が表示されます。この問題を解決するには?java を使用してこれを処理し、RSS に表示するにはどうすればよいですか?
3 に答える
スキーム相対 URLを使用します。つまり、次のような URL です。
<img src="//example.com/images/foo.jpg"/>
これの代わりに:
<img src="http://example.com/images/foo.jpg"/>
詳細: <script src="http://..."> で http:// を // に置き換えることは有効ですか?
Javaはわかりませんが、次のことができます:
var STRING
IF SSL DETECTED
STRING = REPLACE HTTP WITH HTTPS
ECHO STRING
これをループ内で行います。
それを行う最善の方法は、http と https の両方の URL を持つ 2 つの主要な定数を作成し、SSL が検出されているかどうかに関係なく、それらを URL のプレフィックスとして使用することです。
画像 (または他のコンテンツ) が同じホストでホストされている場合、最も簡単な方法は、相対パス参照または絶対パス参照(src="path/to/image.png"
またはsrc="/path/to/image.png
) を使用することです。
イメージが別のホスト上にあり、同じコンテンツを HTTPS (ユーザーからも信頼される可能性が高い証明書を使用) およびプレーン HTTP (少なくともこのリソースに対して) で提供する場合は、ネットワーク パス (相対) 参照を使用します。つまり、 URI からスキームを省略します (例: src="//the.host.name/path/to/image.png"
)。
他のホストが HTTPS 経由でこのコンテンツを提供しない場合、これはより複雑になります。回避策の 1 つは、このコンテンツを照会するリバース プロキシを介して自分で提供することです。クライアントが使用するアドレスは HTTPS サーバーを指し、サーバーはコンテンツを取得します。これを行うときは、次の点を考慮する必要があります。
- セキュリティ: あなたのホストを介して他人のコンテンツを効果的に提供していますが、それがあなたのホストからのものであると信頼できるでしょうか? おそらく、これはメインの HTTPS サイトとは別の HTTPS ホストにする必要があります。
- 帯域幅: すべてのコンテンツはホストによって効果的に提供されるため、最初に取得する必要がある場合があります。
- 法的事項: これは、他人のコンテンツをホストしていると見なされる場合と見なされない場合があります。