Web ページとランディングページの保護

学習の目的

この単元を完了すると、次のことができるようになります。

  • ページのインタラクションに SSL 暗号化を使用する。
  • 悪意のあるフォーム登録を防止するためのセキュリティ対策を立てる。

ページの保護

このモジュールの前半で、Marketing Cloud に組み込まれたセキュリティ機能と暗号化キーについて説明しました。セキュリティに対する意識の高い開発者であれば、Marketing Cloud の Web ページやランディングページも保護したいと思うでしょう。結局のところ、誰もが (またはどのボットも) 正面玄関から入り込めるのであれば、さまざまなセキュリティ対策を立てても意味がありません。ここでは、ページからの侵入を阻止する方法をご紹介します。

SSL 証明書の使用

Marketing Cloud が処理するのはメッセージだけではありません。Web ページもです。Web ページでは購読者が情報を送信したり、コミュニケーションを購読したり、メールクライアントの外部でメッセージを表示したりすることができます。こうしたエクスペリエンスを極めて安全なものにするために、SSL 証明書を使用して Web ベースのコミュニケーションの安全性を確保することをお勧めします。この証明書によって以下のものが保護されます。

  • CloudPage の URL
  • アカウントのランディングページ
  • Email Studio からのメールメッセージに記載されたリンク
  • ポートフォリオコンテンツ

さらに、SSL 証明書は Web トラフィックに暗号化レイヤーを追加して、部外者による機密情報の傍受を阻止します。ホッとしますよね?

証明書が必要な場合は、独自の証明書を購入できますが、Marketing Cloud に購入の管理を任せることもできます。証明書を Marketing Cloud を通じて購入した場合は、その証明書をページとコンテンツの両方の保護に使用できます。さらに、Marketing Cloud が追加料金なしで証明書を管理して更新します。独自の証明書を購入した場合は、その証明書をページの保護にのみ使用できます (画像は保護されません)。

メモ

メモ

有効期間が 1年以内の証明書を使用することをお勧めします。なぜでしょうか? ご想像のとおり、そのほうが安全性が高いためです。 

フォーム登録の管理

CloudPages または API の連携を使用して購読者情報をキャプチャする場合、信頼とセキュリティを念頭に処理することが重要です。そこは私たちがサポートします。フォームデータの保護に役立つ以下のヒントを確認してください(考慮すべきセキュリティ事項はこの限りではありませんが、Marketing Cloud ではまず以下の点を心がけるとよいでしょう)。

  • ページにクエリ文字列を含める場合、SubscriberID、SubscriberKey、ContactKey の値をプレーンテキストで渡さないでください。また、フィールドから値を渡す場合、Base64 や StringtoHex エンコードではなく、暗号化を使用します。復号化を試みる場合とは対照的に、エンコードは簡単にデコードできます。
  • フィールドの処理や検証はすべてサーバー側で行います。また、データを提示する前に、2 つ以上のクエリ文字列パラメーターを使用して、同じ購読者がページを操作していることを確認することをお勧めします。
  • 作成したどのアプリケーションのページにも認証を義務付けます。AMPscript の MicrositeURL 関数を使用してクエリ文字列パラメーターを暗号化することをお勧めします。
  • 非認証または非アプリケーションの公開ランディングページには、空の必須パラメーターがないかチェックするグローバル IF/THEN 句を含めます。この手順によって、誰かがあなたの割り当てたフローに従わず、ページに直接アクセスしようとした場合に一切の処理が阻止されます。
  • 次のサーバーサイド JavaScript のサンプルを使用して、ページのセキュリティヘッダーを有効にします。

例: Web ページのセキュリティヘッダーの有効化

<script runat=server>
   Platform.Response.SetResponseHeader("Strict-Transport-Security","max-age=200");
   Platform.Response.SetResponseHeader("X-XSS-Protection","1; mode=block");
   Platform.Response.SetResponseHeader("X-Frame-Options","Deny");
   Platform.Response.SetResponseHeader("X-Content-Type-Options","nosniff");
   Platform.Response.SetResponseHeader("Referrer-Policy","strict-origin-when-cross-origin");
   Platform.Response.SetResponseHeader("Content-Security-Policy","default-src 'self'");
</script>

この例により、クロスサイトスクリプティングや SQL インジェクションなど、Web フォームの一般的な問題を防止できます。

先に進んでもよいですか? 次の単元では、データセキュリティに関する最上級の推奨事項とベストプラクティスについて説明します。

リソース

無料で学習を続けましょう!
続けるにはアカウントにサインアップしてください。
サインアップすると次のような機能が利用できるようになります。
  • 各自のキャリア目標に合わせてパーソナライズされたおすすめが表示される
  • ハンズオン Challenge やテストでスキルを練習できる
  • 進捗状況を追跡して上司と共有できる
  • メンターやキャリアチャンスと繋がることができる