技術面接問題
エンジニアの
コードを
セキュリティの基本
- 認証と
認可の 違いは何ですか「誰か」を 確かめるのが 認証、 「何を して よいか」を 決めるのが 認可、と 分けて 答える 問い。 401 と 403 の 使い分けと、 他人の データを 見られる 穴まで 話します。入門 - XSS とは
何ですか。 どう 防ぎますか利用者の 入力が 画面の 上で スクリプトとして 動いてしまう穴、 と仕組みで 答える 問い。 出力の 時に 文字を 変える こと、 innerHTML を 避ける こと、 CSP は 重ねる 守りである ことを 話します。初級 - SQL インジェクションとは
何ですか。 どう 防ぎますか入力を 文字列として つないだせいで、 入力が SQL の 文の 一部として 読まれてしまう穴、 と答える 問い。 プレースホルダーと 最小の 権限で 守る ことを 話します。初級 - CSRF とは
何ですか。 どう 防ぎますかログイン中の 人の ブラウザから、 本人の 知らない 要求を 勝手に 送らせる 攻撃、と 答える 問い。 トークンと SameSite の Cookie で 守る ことを 話します。中級 - パスワードは
どう 保存しますか平文でも 暗号化でもなく、 パスワード用の ゆっくりした 一方向の ハッシュと ソルトで 保存する、と 答える 問い。 Argon2id や bcrypt の 名前と、 ログインの ときの 照らし方まで 話します。初級 - API キーや
パスワードを コードに 書かないのは なぜですかコードに 書いた 秘密は リポジトリの 履歴に 残って 広がる、と 答える 問い。 環境変数などに 分けて 置く こと、 漏れたら 無効に して 作り直す ことまで 話します。入門
コードを
