質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.37%
Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

Q&A

解決済

2回答

938閲覧

【Rails / AWS】CORSとAWSセキュリティグループ設定のベストプラクティス、脆弱性

nyako

総合スコア45

Ruby

Rubyはプログラミング言語のひとつで、オープンソース、オブジェクト指向のプログラミング開発に対応しています。

Ruby on Rails

Ruby on Railsは、オープンソースのWebアプリケーションフレームワークです。「同じことを繰り返さない」というRailsの基本理念のもと、他のフレームワークより少ないコードで簡単に開発できるよう設計されています。

Amazon EC2

Amazon EC2は“Amazon Elastic Compute Cloud”の略称です。Amazon Web Services(AWS)の一部であり、仮想化されたWebサーバーのコンピュータリソースをレンタルできるサービスです。

0グッド

1クリップ

投稿2021/08/27 12:20

AWSの構成

ロードバランサーを経由して、EC2インスタンスへアクセス

現在ロードバランサーのSGにHTTPS 443 全ポートを許可しています。

またRails側のCORS設定で、Originを絞っています。


以上を踏まえ、
Railsの機能でメール認証を取り入れています。

新規登録 → メール内のリンクをクリック → 有効であれば、 バックエンドの本登録のコントローラーのメソッドが呼ばれる。(メール内のリンクにバックエンドAPIを呼び出すように設定)

→ https://test_api.com/edit/:token/

解決したいこと

現在SG, Corsを設定しているのですが、
メールの認証をクリックした際のアクセス元は不特定多数のユーザーになります。

この際であれば
・SG
・Cors
はどのように設定するのがベストプラクティスなのでしょうか。

一応認証と認可の仕組みは組み込んでいます。

思わぬ脆弱性があるのではないかと思いました。

宜しくお願い致します。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答2

0

セキュリティグループとCORSに過度な期待をしているように思えます。この文脈ではCORSは無意味です。セキュリティグループは、サービス提供に必要最小限の開放を行います。

おそらく特殊なセキュリティ要件ではないように思うので、一般的なセキュリティを勉強して、それを実施しください。

投稿2021/08/27 15:01

ockeghem

総合スコア11705

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

0

ベストアンサー

メール内のリンクにバックエンドAPIを呼び出すように設定

この条件では、CORSは無関係です(何も設定せず、「クロスオリジンからは取得不能」であっても問題ありません)。

CORSは、ブラウザJavaScriptからアクセスする場合の情報共有を制御するための仕組みであって、リンクを直接クリックしてアクセスするような状況では、CORSがあろうがなかろうが何も関係しません。

投稿2021/08/27 12:56

maisumakun

総合スコア145930

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

nyako

2021/08/27 13:03

maisumaku様 いつもありがとうございます! CORSについて勘違いしておりました。 もしmaisumakun様が同様のメール認証を実装し、セキュリティを担保するとしたらどのような手段を取りますでしょうか。
maisumakun

2021/08/27 13:20 編集

まずは、「何に対する」セキュリティを考慮したいのかを明確にしてください。 「サービス自体を提供しない」というような手法を除けば、あらゆるセキュリティ対策は、ある決まった範囲の攻撃手法に対するものでしかないのです。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.37%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問