LoginSignup
3
0

More than 5 years have passed since last update.

Elixir&Phoenix学習中に気になったCSRFのコト

Last updated at Posted at 2019-01-11

Elixir&Phoenixの学習中で、分からない言葉は調べながら進めています。
なので、備忘録的なものです。

環境
MacOS Ⅹ
Elixir 1.7.4
Poenix 1.4.0

Excelから関数型言語マスターシリーズ6回目をやってみた

@piacere_ex さんの「Excelから関数型言語マスター」シリーズを5回目までやったので
いよいよ「Excelから関数型言語マスター6回目: Vue.js+内部API(表示編)」
をやってみました。

流れはpiacere_exさんのページを見て進めればいいから、ここには書かない。

順に進めて行けば大丈夫。
1~5回目までをやった時にも思ったけど、APIと合わせるとこんなに色々できるってすごい…

気になったコト

APIでデータ投入のところに出てくるけど、今回は一旦外しておく。
と言うコレ。

router.ex
plug :protect_from_forgery

forgery???
「偽造」って、なんだかただ事じゃない感…

CSRFの保護を有効にするPlugらしいと言うのは分かった。
phoenixのドキュメントにも書いてある。

と言われても、CSRFって一体なにものなのか…
偽造されない為に保護するものなのはわかるけど、一体なんなのだろう。

CSRFって?

Cross-Site Request Forgery頭文字を取ってCSRF。
クロスサイト・リクエスト・フォジェリーと読むらしい。

リクエスト強要(CSRF:Cross-site Request Forgery)とは、別のサイトに用意したコンテンツ上の罠のリンクを踏ませること等をきっかけとして、インターネットショッピングの最終決済や退会等Webアプリケーションの重要な処理を呼び出すようユーザを誘導する攻撃である。。
(引用元:IPA 独立行政法人情報処理推進機構

怖い怖い。
対策しないとダメなんじゃないの?
と思ったけど

piacere_exさんの記事の中にも紹介されている↓の記事を読むとわかる
http://watanabe-tsuyoshi.hatenablog.com/entry/2015/03/04/123649

ログインが必要な状況で、その中に個人情報など含まれている場合に困るということ。
基本的にログインしている状態以外のところにこの攻撃をしてもあまり意味はないらしい。
 

そもそも、今回このままサービスとして公開する訳ではないし…

だからこの部分に時間をかけるよりは、実際に動くものを作れるんだ。
と言うのが簡単にできる体験の方が重要なのでしょうね。
動いた!できた!って、分かるとより深いところまで知ってみたくなるもの。
 

対策をするのではなく、コメントアウトして機能を無効化した理由はそこかな?

まぁ、「本筋から外れるから…」と書いていらっしゃるわけですし♪

実際の対策は

対策方法はドキュメントに書いてあるから、実際に必要な時はここ見て作る。
https://hexdocs.pm/plug/1.7.0/Plug.CSRFProtection.html

ここ試してみたら、また書こう。
  

それにしても、プログラミングってただ書けるようになればいいだけじゃなく、情報セキュリティ対策も知らないといけないよね…
知らなくてごめんなさい。
って思った。

そんなの当たり前でしょ!
って人が多いのかもしれないけど…
初心者すぎて「言語を覚える」ってコトが優先になってて、その他にもっともっと必要ないろんなコトが抜けてた。
この辺も勉強しないとなぁ。
 

実際に手を動かしてみて、なんでこうなのか。
なんでこれが必要なのかって、調べて理解していくコトって大切ね。

3
0
1

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
3
0