SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Developers Summit 2023 セッションレポート

フロントエンドエンジニア必見! 脆弱性の仕組みと対策方法を解説

【10-A-4】フロントエンド開発のためのセキュリティ入門

  • X ポスト
  • このエントリーをはてなブックマークに追加

 WebブラウザやWebフロントエンドの技術は日々進化しており、Webページの表現はどんどん多彩なものになり、同時に実装がどんどん複雑になっている。この進化に合わせるように、フロントエンドの脆弱性も増加しており、実装を誤って攻撃を許してしまう例が増えている。フロントエンドエンジニアは、複雑になる実装に追随しながら、脆弱性にも気を配らなければならなくなっている。しかし脆弱性にもさまざまな種類があり、すべてを漏らさず把握し、的確な対策を打つことはかなり難しい。このセッションでは、サイボウズ株式会社New Business Divisionの副部長であり、同社でフロントエンドエンジニアとして活躍している平野昌士氏が、Webアプリケーションをようやく作れるようになった若手エンジニアを想定して、フロントエンドに多い脆弱性の仕組みとその対策について解説した。

  • X ポスト
  • このエントリーをはてなブックマークに追加

セキュリティ強度を高めるためにHTTPはHTTPSに切り替えよう

 まず平野氏は、OWASP(Open Worldwide Application Security Project)が数年に一度発表しているセキュリティリスク上位10件から、「暗号化の失敗」「アクセス制御の不備」「インジェクション」「脆弱で古くなったコンポーネント」の4件を挙げ、このセッションではこの4件に絞って解説するとした。

 暗号化の失敗は、Webブラウザとサーバーの間のHTTP(Hypertext Transfer Protocol)通信を暗号化できていないことだ。HTTPは平文のまま通信データをやり取りするので、通信経路の途中でデータを盗聴されたり、改ざんされたりする可能性がある。さらに、HTTPでは通信相手が本物であるか確認できないため、攻撃者が仕掛けた偽物のサーバーに機密データを送信してしまう可能性もある。

 そこで必要になるのがHTTPからHTTPSへの切り替えだ。HTTPSはHTTP通信のデータをTLS(Transport Layer Security)プロトコルで暗号化する仕組みだ。TLSで電子証明書をやり取りすることにより、通信相手が本物であるかも検証できる。

 しかし、WebサイトをHTTPS化する際に注意しなければいけない点があります。その1つが「Mixed Contents」です。Mixed Contentsとは、1つのWebページにHTTPで配信されたリソースとHTTPSで配信されたリソースが混在する状態を指す。例えば、URLが指すWebページ自体がHTTPSで配信されていても、サブリソースのJavaScriptがHTTPで配信されている状態では、通信の途中で改ざんされて攻撃コードが埋め込まれる可能性がある。Mixed Contentsになってしまっているかどうかは、「Chrome DevTools」などを使えばすぐに分かる。HTTP通信が残っているようならば、早急に修正すべきだ。

 修正箇所が多いときや、すぐにHTTPS通信に切り替えることが難しいときは、サーバー側でHTTPのリクエストをHTTPSへリダイレクトする設定をしておくと良い。さらに、Webブラウザから送信するリクエストをHTTPSに強制できるHSTS(HTTP Strict Transport Security)を利用することも薦めた。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
外部Webサイトと安全にやり取りするためにアクセスを適切に制御する方法

この記事は参考になりましたか?

  • X ポスト
  • このエントリーをはてなブックマークに追加
Developers Summit 2023 セッションレポート連載記事一覧

もっと読む

この記事の著者

笹田 仁(ササダ ヒトシ)

 フリーランスのライター、編集者。IT、特にソフトウェア開発の話が好きです。 趣味はドラムを叩くこと。コロナ騒ぎでリハーサルスタジオに入りにくくなり、ちょこちょこと楽器を買うことでストレスを解消していたら、いつの間にか置き場所に困るほどになってしまいました。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

CodeZine編集部(コードジンヘンシュウブ)

CodeZineは、株式会社翔泳社が運営するソフトウェア開発者向けのWebメディアです。「デベロッパーの成長と課題解決に貢献するメディア」をコンセプトに、現場で役立つ最新情報を日々お届けします。

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • X ポスト
  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/17841 2023/08/07 11:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング