web-dev-qa-db-ja.com

Webサイトをhttpsで保護する方法

会社のビジネスデータを維持するために会社用の小さなwebappを構築する必要があります...社内の人だけがそれを使用しますが、従業員がさまざまな場所からアプリに接続できるように、パブリックドメインでホストすることを計画しています。 (今まで、内部でのみホストされるWebアプリを作成しました)

セキュリティで保護された接続(https)を使用する必要があるのか​​、フォーム認証だけで十分なのか疑問に思っています。

Httpsと言う場合、いくつか質問があります。

  1. Webサイトをhttps用に準備するにはどうすればよいですか。 (コード/構成を変更する必要があります)
  2. SSLとhttpsはまったく同じです...
  3. ライセンスなどを取得するために誰かに申請する必要がありますか。
  4. すべてのページを保護する必要がありますか、それともログインページのみを保護する必要がありますか...

私は答えをインターネットで探していましたが、これらのすべてのポイントを得ることができませんでした...ホワイトペーパーまたは他の参照も役立つでしょう...

詳細情報が必要な場合はお気軽にお問い合わせください。

ありがとう

  • ラジャ
87
The King

Webサイトをhttps用に準備するにはどうすればよいですか。 (コード/構成を変更する必要がありますか)

安全なコーディングのベストプラクティスを念頭に置く必要があります(ここで適切なイントロ: http://www.owasp.org/index.php/Secure_Coding_Principles ) SSL証明書。

SSLとhttpsはまったく同じです。

はい、そうです。

ライセンスなどを取得するために誰かに申請する必要がありますか。

認証局からSSL証明書を購入するか、自己署名証明書を使用できます。購入できるものは価格が大きく異なります-年間10ドルから数百ドルです。たとえば、オンラインショップを設置する場合は、これらのいずれかが必要になります。自己署名証明書は、内部アプリケーションにとって実行可能なオプションです。開発用にこれらのいずれかを使用することもできます。 IISの自己署名証明書をセットアップする方法に関する優れたチュートリアルを次に示します。 SSLを有効にするIIS 7.0自己署名証明書を使用する

すべてのページを保護する必要がありますか、それともログインページのみを保護する必要がありますか。

最初のユーザーログインだけでなく、すべてにHTTPSを使用します。オーバーヘッドが大きくなることはありません。リモートでホストされているアプリケーションからユーザーが送受信するデータは、傍受された場合、外部の第三者が読み取ることはできません。 GmailでもデフォルトでHTTPSが有効になります。

48
Rowlf

どのようなビジネスデータ?営業秘密や、人々に見られたくないだけのものですが、もしそれが出たら大した問題ではないでしょうか?営業秘密、財務情報、顧客情報など、一般的に機密事項について話している場合。その後、そのルートを下ってはいけません。

セキュリティで保護された接続(https)を使用する必要があるのか​​、フォーム認証だけで十分なのか疑問に思っています。

安全な接続を最後まで使用してください。

コード/構成を変更する必要がありますか

はい。よくないかもしれません。専門家にこれをしてもらいたいかもしれません。

SSLとhttpsはまったく同じです...

ほとんどはい。通常、人々はそれらのことを同じものと呼びます。

ライセンスなどを取得するために誰かに申請する必要がありますか。

おそらく、認証局によって証明書に署名してもらいたいでしょう。それはあなたまたはあなたのクライアントに少しお金がかかります。

すべてのページを保護する必要がありますか、それともログインページのみを保護する必要がありますか?.

全体でhttpsを使用します。サイトが内部ユーザー向けである場合、通常はパフォーマンスは問題になりません。

私は答えをインターネットで探していましたが、これらのすべてのポイントを得ることができませんでした...ホワイトペーパーまたは他の参照も役立つでしょう...

いくつかのポインターについては、ここから始めてください。 http://www.owasp.org/index.php/Category:OWASP_Guide_Project

SSLは、インターネットからアクセス可能なWebサイトを安全に保護するための非常に重要な部分です。ほとんどの種類のハッキングを防ぐことはできません。

8
huynhjl

あなたはあなたのサイトの認証とSSLと混同していると思います。

サイトをSSLに移行する必要がある場合は、WebサーバーにSSL証明書をインストールする必要があります。シマンテックなどの場所から証明書を購入できます。証明書には、公開鍵と秘密鍵のペア、およびその他のものが含まれます。

ソースコードで何もする必要はなく、サイトでフォーム認証(またはその他)を引き続き使用できます。 Webサーバーとクライアント間で行われるデータ通信は、証明書を使用して暗号化および署名されます。人々はセキュアHTTP(https://)を使用してサイトにアクセスします。

詳細はこちらをご覧ください-> http://en.wikipedia.org/wiki/Transport_Layer_Security

7
Bhaskar

ビジネスデータの場合、データがプライベートである場合、セキュリティで保護された接続を使用します。それ以外の場合は、フォーム認証で十分です。

セキュリティで保護された接続を使用することにした場合は、Webサイトのセキュリティを確保した経験がないことに注意してください。とにかく間違っている場合は、お気軽に修正してください。

Webサイトをhttps用に準備するにはどうすればよいですか。 (コード/構成を変更する必要がありますか)

Webサイトで SSL(Secure Sockets Layer) を有効にするには、証明書をセットアップする必要があります。コードまたは構成は変更されません。

OpenSSL および ActivePerl from を使用して、内部WebサーバーのSSLを有効にしました。 このオンラインチュートリアル 。これがより多くの聴衆(私の聴衆は10人未満)に使用され、パブリックドメインにある場合は、専門的な代替手段を探すことをお勧めします。

SSLとhttpsはまったく同じです...

正確ではありませんが、彼らは手をつないで行きます! SSLは、Webサイトの表示中にデータが暗号化および復号化されることを保証します。httpsは、安全なWebサイトにアクセスするために必要なURIです。 http://secure.mydomain.comにアクセスしようとすると、エラーメッセージが表示されます。

ライセンスなどを取得するために誰かに申請する必要がありますか。

ライセンスを取得する必要はなく、証明書を取得する必要があります。たとえば、 VeriSign などのWebサイトを保護する専門的なサービスを提供している企業を調べることができます。

すべてのページを保護する必要がありますか、それともログインページのみを保護する必要がありますか?.

証明書がmydomain.comに対して有効になると、*.mydomain.comに該当するすべてのページが保護されます。

3

@balalakshmiは、正しい認証設定について言及しました。認証は問題の半分に過ぎず、残りの半分は承認です。

フォーム認証と<asp:Login>などの標準コントロールを使用している場合、認証されたユーザーのみがセキュリティで保護されたページにアクセスできるようにするために必要なことがいくつかあります。

web.config<system.web>セクションの下で、デフォルトで匿名アクセスを無効にする必要があります。

<authorization>
 <deny users="?" />
</authorization>

匿名でアクセスされるページ(Login.aspxページ自体など)には、匿名アクセスを再度許可するオーバーライドが必要です。これには<location>要素が必要で、次のように<configuration>レベル(outside<system.web>セクション)に配置する必要があります。

<!-- Anonymous files -->
<location path="Login.aspx">
 <system.web>
  <authorization>
   <allow users="*" />
  </authorization>
 </system.web>
</location>

匿名ページで使用されるスタイルシートまたはスクリプトへの匿名アクセスも許可する必要があることに注意してください。

<!-- Anonymous folders -->
<location path="styles">
 <system.web>
  <authorization>
   <allow users="*" />
  </authorization>
 </system.web>
</location>

場所のpath属性はweb.configフォルダーに関連しているため、他のほとんどのパスタイプの構成属性とは異なり、~/プレフィックスを持つことはできません。

1
devstuff

4.すべてのページを保護する必要がありますか、またはログインページのみを保護する必要がありますか?.

ログインページはhttpsのままにしてください

これにより、他のページを閲覧するときにオーバーヘッドが発生しなくなります。条件は、Web構成で正しい認証設定を提供する必要があることです。これは、ログインしていないユーザーが認証を必要とするページを閲覧できないようにするためです。

1
balalakshmi