プログラミング

プログラミング学習レポート⑧【CSRF対策】

この記事は、侍エンジニア塾のプログラミングレッスン内容が、できるだけイメージできるように書いています。

プログラミングスクール選びで迷ってるけど、侍エンジニア塾ってどんな感じかな??

と気になっている読者の方は、現役エンジニアに直接レッスンを受けることの良さが分かると思いますので、ぜひ参考にしてください。

第8週目レッスンレシピ
  1. CSRFセキュリティ対策
  2. 教材エラー文解決
  3. 次回までの課題確認
  4. (為になる)雑談

リクエスト強要(CSRF)対策

前回のレッスンでは、SSH対策を学びましたが、その流れもあって、CSRF対策もついでに学びました。

プログラミング学習レポート⑦〜WordPressセキュリティ対策〜 ITスキルを身につけて、キャリア・チェンジを目指しているそこのあなた。プログラミングスクールに通うことを検討していませんか? こ...

現在、PHPフレームワークのLaravelを学んでいて、その中でフォーム画面を送信するコードに、@CSRFと書くんですよね。

「これってなんですか・・・?」

と、インストラクターに相談すると、いつもの通り、すぐにわかりやすいサイトを教えてくれました。(気になる方はコチラ

CSRF対策とは?

簡単にいうと、「悪意のある人が、ユーザー情報を利用してサイトを攻撃すること」ですね。
※技術ブログではないので詳細は触れません。

Webアプリを作成するにあたってはセキュリティ対策は必須なので、覚えないといけないとのこと。

確かにそうですよね。お客さんに納品して、それが情報漏洩するものだったら信用を失います。だから、しっかりとセキュリティ対策が施されているコードを書けるように気を付けたいものです。

LaravelのCSRF対策は1行で簡単

通常のPHPコードで書くと・・・

<input type="hidden" name="_token" value="<?=$csrf_token?>">

Laravelで書くと、@CSRF のみ。

フレームワークがいかに簡単にコードをかけるのかおわかりいただけたでしょうか?

なぜ私がこんなに説明できるかというと、インストラクターのわかりやすい説明があったからです。

インストラクターの説明がわかりやすい

侍エンジニア塾の最大の魅力は、現役のエンジニアに教えてもらえることですね。いくらか本で読んでも、やっぱり理解が速いのは直接教えてもらうことなんですよ。

上記の写真が、CSRF対策を学習した時のスクショです。

Laravel教材のログイン場面で、@CSRFがどのように仕込まれているかをデベロッパーツールで確認しています。

ランダムな文字列が、_tokenとして生成されていていました。インストラクターが、@CSRFがどのようなコードに変換されているのかを実際に見せてくれたので、理解が深まりました。

私はこれから先、CSRF対策を忘れることはないと思います。なぜなら、単に「覚えた」のではなく、「体験」できたからです。

自分で書いたコードの疑問点を、現役エンジニアが解説する。この流れのおかげで、私は効率よく学習することができています。

学習過程で湧いてきた疑問をインストラクターが解説してくれるので、理解が深まる。

教材エラー文解決

プログラミング初心者が挫折するNo1の原因が「エラー文が解決できない」ことだと個人的には思っています。

なぜなら、一番時間がかかって前に進めないからです。

そんな悩みを、現役エンジニアは、ほんの数秒で解決に導いてくれます。

今回私がつまづいたエラー文は、
Failed to parse dotenv file due to unexpected whitespace.
です。

これをインストラクターが見たところ、
「空白があるみたいですね」
と一言。

そして、カチャカチャと検索して、解決できるサイトを共有してくれました。

このサイトの情報によると、.envファイルに空白を入れるときには ” ” で囲む必要があるそうです。

調べた通りにコードを直してみると、私が30分悩んで諦めていたものが、1分も立たずに解決しました!

エラー文解決を諦めた後は、学習が進んでいなかったので、実際は1日以上放置していた問題が、こんな短時間で解決したのです。

さらに、インストラクターはエラー文解決の手順を教えてくれました。

エラー文解決の方法(初心者のうちは)

  1. エラー文をGoogle翻訳で地道に解釈
  2. まずはエラー文全文をコピペして検索
  3. なければ、文を絞って再度検索
  4. 海外のプログラミング情報共有サイトを使えるようになるとよい。(stack Overfrow

インストラクターいわく、これが1番力がつくとのこと。教えられたからと言ってすぐにできるようにはなりませんが、何すればいいのかわからないよりは、こうやってみようと選択肢のある方が、学習の効率が上がります。

インストラクターは、問題を解決してくれるだけではなく、解決の方法も教えてくれる。

次回までの課題確認

今回(第8週)のレッスンでは、上記のセキュリティ対策とエラー文の解決で時間がいっぱいになったので、いつもの通り、「来週までの課題を確認」しました。

現在、主に学習しているのがLaravelなのですが、それと並行して、ポートフォリも作成していきます。

ポートフォリオは、自分の実力を見てもらうための作品なので、いかに独自性を出せるのかが大事だと思います。

(企業が採用したくなる)独自性を出すサイトづくりのために、インストラクターが教えてくれたのが以下の書籍です。

起業するために必要な考え方と行動を5章に分けて説明しています。FeceBookなどの大企業を例にしているので、成功する起業の特徴がわかります。
自分が思いついたアプリやサービスは、この本の第2章までを読むと、リーンキャンバスを用いてより具現化(言語化)できると思います。

Kindle版 楽天ブックス amazon

Laravelの学習と並行して、この本を読むことと、企画書(リーンキャンバス)を作ることを来週までの課題にしました。

来週までの課題をインストラクターが提示してくれることによって、1週間、迷わずに学習することができる。

フルオーダーメイドカリキュラムなので、インストラクターに言われた通りのことをやらないといけないことはない。

今回の話だと、『Laravel』学習に集中したい。などと断っても問題はありません。

(為になる)雑談

レッスンも8週目(2ヶ月)を終え、インストラクターとも最初の頃よりは打ち解けて話ができるようになりました。

ひょんなことから出てきた話題でも、エンジニアの世界を知らない私にとっては勉強になるものです。

これまで、

・大企業の新入社員にプログラミングを教えた話
・年収300万円のお店を1200万円まで伸ばした話
・日本では売れないものも、海外では需要があるのでものが売れる話

など、飲みにいってもっと詳しく聞きたくなる話ばかりでした。

他にも、

・技術はまあまあでも、デザインができればなんとか就職はできる
・ワードプレスを自作できるようになれば敵なし
・Web制作の案件は身近な人にお願いして実践していった方が良い

など、現場の様子やこれからの行動すべきことなどのアドバイスもいただけました。

侍エンジニア塾はマンツーマンレッスンなので、他のインストラクターがどんな感じなのかは分かりませんが、現役エンジニアの方と話せる機会を得られるのはとても貴重です。

もし、侍エンジニア塾に通うのであれば、インストラクターとしっかりコミュニケーションをとることをオススメします。

インストラクターの経験談は為になる。

まとめ

今回のレッスンレポートは以上です。少しでもレッスン内容がイメージできていれば幸いです。

第8週目レッスンで学べたこと
  1. CSRF対策の意味と構造
  2. エラー文解決方法の手順
  3. ポートフォリオ作成のヒント
  4. 現役エンジニアの体験談

基本的な学習の流れとしては、以下の③と④の繰り返しです。

  1. 自分の作りたいアプリ・サービスを考える
  2. これを作る為に必要な学習課題をインストラクターが提示する
  3. 学習の過程でつまづいたところや、疑問点をレッスンで解決する
  4. 次の課題(ステップ)に取り組む

気をつけていただきたいのは、レッスンの時間だけでプログラミングを学習するわけではない。ということです。

あくまでも、インストラクターは技術習得のロードマップを教授してくれて、その過程でのつまづきをサポートしてくれるもので、学習の大半は自分で進めていきます。(チャットでの質問などは、いつでも何回でもOKです。)

レッスンで全て教えてもらおうとすると、学習は進まない。週1のレッスンに向けて、毎日勉強することが大切です。

もう少し詳しく知りたい方は、以下の記事もどうぞ。

【侍エンジニア塾】プログラミング学習レポート〜1ヶ月まとめ〜侍エンジニア塾に入塾してから1ヶ月間のまとめ記事です。...

さいごに

私は、侍エンジニア塾に入ってからプログラミング学習の効率と質が上がったので、もし、プログラミングスクールに通うことを検討しているのであれば、1度無料体験レッスンを受けることをオススメします。

侍エンジニア塾のカリキュラムについての説明ではなくて、「なぜプログラミングを学びたいのか?」という根本的な問題から一緒に考えてくれますよ。

侍エンジニア塾 無料体験レッスン

関連記事

ABOUT ME
tozan-miyage
アラフォーからプログラミングを学び独立。Webスキルを身につけて、個人で稼ぐ方法を発信します。