📘
ITエンジニアへの道115日経過 - 安全なアプリケーション
現在の学習状況
こんにちは、Someです!
まずは現在の学習状況をシェアしていきます。
※右にある数字は終了予定月と()内が完了実績月です。
- html・css 4月(4)
- Javascript 4月(4)
- Python 4月(4)
- Django 5月(5)
- git・github 5月(5)
- Linux 5月(5)
- DB・SQL 6月 (6)
- モダンJavaScript 6月(6)
- 業界研究、企業研究 7月(7)
- ポートフォリオアイデア 7月(7)
- PHP・Laravel基礎学習 7月(8)
- 安全なアプリケーション 8月←イマココ
- API 8月
- ポートフォリオ作成開始 8月
- ポートフォリオ完成 10月
- 転職活動開始 10月
- 転職成功 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を使っていく中でそういったことを学んでいけたらと思います!
それでは今週はこのへんで!
ありがとうございました!
Discussion