見出し画像

リファラ―制限の実装について

-まえがき-

※↑noteの連載で達成することはこちらから

ー本編ー

リファラ―制限で出来ること

リファラ―は、ユーザーのリンク元がどこかを辿ることが出来るもので、そのリファラ―に記録されたURLによってアクセス制限を設定できるものです。
例えば、会員登録している人のマイページからしかコンテンツへアクセスできないように制限を設定することができます。

以下のサイトでリファラ―制限の動作を実際に確認いただけます。
https://wwdaisukeee.com/referrer/

画像1

具体的な実装の方法(一般的な方法)

リファラ―制限を実装する方法は、htaccessでサーバーの動きを設定します。

画像4

具体的には、.htaccessのファイル内に以下のような記載をします。

画像2

https://wwdaisukeee.com/referrer/mypage/というURLを介してでなければ、アクセスできないという設定になっています。
最後にこのルールを適用したいページのディレクトリにFTPソフトなどを使ってサーバーにアップロードすることで、制限をかけることができます。

画像3

↑(FTPクライアントソフトでのファイルアップロード)

具体的な実装の方法(AWSを利用した方法

WAFとは-
AWSの中のサービスのWAF(Web Application Firewall)を利用してリファラ―制限を行います。
WAFは通信をフィルター、監視、ブロックするためのAWSの中のサービスで、さきほど設定したhtaccessと同様にリファラ―制限や、IP制限、クロスサイトスクリプティングなどの攻撃から守ってくれるサービスです。
AWSではこのサービスを使ってリファラ―制限を設定してきます。

(図解)

このような構成を仮定して進めていきます。

ー具体的な実装の手順ー
1. Web ACLsを作成(WAFの設定先のサービスを選択。今回はcloudfront)
WAFのサービスをAWSのメニューから選択すると以下のようなタブが出てきますので、その一番上のWeb ACLsを選択します。

画像5

Create web ACLを押すと、↓以下の画面に推移します。

画像6

この画面では、どのAWSサービスに対してWAFを紐づけるかを選択してきます。
ここで今回はCloudFrontを選択して、CloudFrontの中で対象になるdistributionを選択します。

2. String and regex match conditionsを設定(どういったURLからのアクセスを制限の対象にするかを決める)
↓左タブから枠内を選択し、Create conditionの青ボタンをクリックします

画像7

ここでは、どういったURLの記載のものを制限の対象にするかを設定することができます。
例えば、「mypage」という単語がURLに含まれているものを対象にする。という設定がここで出来ます。

画像8

3. Rulesを設定(CloudFrontのアクセスに関するルールを設定)
↓左タブのRulesを選択して、Create ruleをクリックします

画像9

↓以下の設定画面に移行します。

画像10

ここで先ほど設定したURLのフィルターの設定を適用することで、ルールを作成することが出来ます。

4. Web ACLsにルールを適用して設定完了

画像11

最初に作成したACLsの設定で編集をクリックして以下の画面へアクセスします。

画像12

ここで、先ほど作ったルールを選択し、このルールが適用されたらどういう挙動をするか、設定したルールに一切合わなかったら、どうするかを選択します。
今回はマイページからのみアクセスできるようにするので、ルールに適用する場合アクセス出来る。それ以外は拒否という設定をしておきます。

その結果、最初に示したような制限の動きを実装することができます。
https://wwdaisukeee.com/referrer/

この記事が気に入ったらサポートをしてみませんか?