月間18,000PV達成! 収益は毎日発生中! 記事は毎日更新中! ホワイトハッカー育成スクール通ってます! ギランバレー症候群に関する情報を集めています

Angularのセキュリティ!XSSやCSRFの対策は?

Angularのセキュリティ!XSSやCSRFの対策は?
Advertisement

 

最近、僕は良くAngularを触るのですが、今参画している案件ではセキュリティ診断なるものがあるらしいです。

となると、Angularに関してもセキュリティの知識は身に付けておくべきでしょう。

ということで今回は、Angularにおけるセキュリティについてまとめてみました。

 

 

Angularのセキュリティ

Angularはサーバサイドではなくフロントサイドなので、セキュリティを過剰に意識しすぎる必要はありません

ただ、最近はセキュリティにうるさい世の中なので、エンジニアである以上意識してコーディングはするべきです。

Angularがデフォルトで対策しているものは以下の通りです。

・XSS(クロスサイトスクリプティング)

・CSRF(クロスサイトリクエストフォージェリ)

・XSSI(クロスサイトスクリプトインクルージョン)

 

 

XSS(クロスサイトスクリプティング)

フロントサイドにおいて、XSSは一番考慮しなくてはならない問題です。

XSS対策において大切なことは、悪意のあるDOMを挿入されないようにすることです。

 

AngularにおけるXSS対策

Angularは、すべての入力を信頼できない値として処理します

つまり、DOMへの値挿入はすべて信頼できない値として処理し、サニタイズされます。

サニタイズは「無害化」という意味です。
<script>タグなど、特殊な文字列を無害化します。

 

サニタイズ例

上記は公式サイトに載っているソースコードです。

テンプレート補完({{}})は自動的に「htmlSnippet」の値をエスケープします。

innerHTMLでは、<script>タグはサニタイズされますが、<b>タグなどはサニタイズされません。

 

 

CSRF(クロスサイトリクエストフォージェリ)

Angularは、デフォルトでCSRFの対策がなされています

 

HttpClientXsrfModuleのソースコード

 

コメントには以下のような記載があります。参考までに。

Cookie name default is XSRF-TOKEN.

Header name default is X-XSRF-TOKEN

 

 

XSSI(クロスサイトスクリプトインクルージョン)

Angularは、デフォルトでXSSIの対策がなされています

 

 

Advertisement

 

Angularのセキュリティ対策で大切なこと

Angularでのセキュリティ対策として大切なことは以下の通りです。

・最新状態に保つこと

・Angularテンプレートを利用すること

 

最新状態に保つこと

何でもそうですが、常に最新状態を保つことは大切です。

特に、Angularの場合はバージョンが約半年ほどで更新されるので、最新のバージョンにすることも大切になります。

※バージョンアップには脆弱性対策に関するパッチも含まれるため、更新は怠らないようにしましょう。

 

Angularテンプレートを利用すること

サードパーティ製のものを利用するなど、脆弱性のあるものを利用するのは極力避けましょう。

Angularでできることは多種多様なので、わざわざ脆弱性のあるものを入れる必要はありません。

 

 

Angularのセキュリティ公式サイト

Angularのセキュリティ公式サイトです。

■Angularセキュリティ

URL:「https://angular.jp/guide/security」

 

 

Googleのセキュリティ

AngularはGoogleが開発していることもあり、Googleにおけるセキュリティも確認しておくべきです。

Googleにおけるセキュリティは以下を参照してください。

■Google Application Security

URL:「https://www.google.com/about/appsecurity/」

 

 

おすすめ本

Angularの勉強をするならこの2冊がおすすめです!

 

 

 

 

まとめ

Angularでコーディングをする際に気を付けるべきポイントは特にありません。

といってもAngularだけで完結するシステムは存在しないため、サーバ側ではセキュリティの考慮は必須です。

また、コーディングが悪ければそれだけセキュリティリスクも増していきます。

常に最新の情報を入手し、セキュリティを考慮したコーディングを心がけましょう。

 

Travelerを知らないの?