📘

ITエンジニアへの道115日経過 - 安全なアプリケーション

2024/08/12に公開

現在の学習状況

こんにちは、Someです!
まずは現在の学習状況をシェアしていきます。
※右にある数字は終了予定月と()内が完了実績月です。

  1. html・css 4月(4)
  2. Javascript 4月(4)
  3. Python 4月(4)
  4. Django 5月(5)
  5. git・github 5月(5)
  6. Linux 5月(5)
  7. DB・SQL 6月 (6)
  8. モダンJavaScript 6月(6)
  9. 業界研究、企業研究 7月(7)
  10. ポートフォリオアイデア 7月(7)
  11. PHP・Laravel基礎学習 7月(8)
  12. 安全なアプリケーション 8月←イマココ
  13. API 8月
  14. ポートフォリオ作成開始 8月
  15. ポートフォリオ完成 10月
  16. 転職活動開始 10月
  17. 転職成功 12月

今週の学び・気付き

前回作成したLaravelアプリに対して、以下の項目が網羅されているか確認していきました!
結論:Laravelであれば一定レベルの安全は担保されているが、今後書くコードによっては脆弱性が露見される可能性がある。

  • gitignoreに環境変数を入れている
  • システムエラーメッセージがでない
  • 確認用のデータ出力がされていない
  • パスワード入力タグがpasswordになっている
  • パスワードがハッシュ化されている
    デフォルトでBcryptハッシュアルゴリズムによってパスワードがハッシュ化されている
    config/hashing.phpで確認可能
  • 個人情報がキャッシュに残っていない
    デフォルトでセッションデータをEncrypted Cookieに暗号化されて保存するため、基本的には問題ない
    Illuminate\Cookie\Middleware\EncryptCookies
  • XXE対策がされている
    LaravelはXMLパーサーを使用しないため、リスクが低い
  • インジェクション対策がなされている(バリデーションやエスケープで処理系に渡す)
    EloquentORMやQuery Builderで対策がされている
    しかし生のSQLを実行する場合は注意が必要
  • XSS対策がなされている(データを正しくエスケープ)
    今後JavaScriptコードを書くときにしっかりエスケープ処理を行わないといけない
    {{}}でhtml文字がエスケープされる
  • CSRF対策がなされている(正規のフォームから入力されたか判別)
    Laravelには自動で対策が組み込まれている
    CSRFトークンが自動的に生成されフォームに埋め込まれる

来週からの学習予定

来週からはAPIについて学習していきます!
APIを使うことでいろんなWebサービスを使えることはわかるのですが、どこまでの機能を実装できるのか、どこまで実装して良いのかとか分からない部分がまだあります。

実際にAPIを使っていく中でそういったことを学んでいけたらと思います!

それでは今週はこのへんで!
ありがとうございました!

今週使用した学習教材

1.Laravelの教科書(Kindle)

Discussion