開講3ヶ月で受講生12名突破 | ミライの女性エンジニアとなる受講生募集中

LuaGate
LuaGate
LuaGate
一覧に戻る
学習2026年3月20日

セキュリティを知らないエンジニアは「危険」

L
LuaGate編集部LuaGate講師・ソフトウェアエンジニア|1,000人以上のエンジニアを育成

セキュリティを知らないエンジニアは「危険」

プログラミングを学ぶとき、セキュリティについて体系的に学ぶ機会は意外と少ないものです。しかし、Webエンジニアとして現場に出るなら、セキュリティの基礎知識は必須です。

セキュリティの脆弱性を含むコードを本番環境にリリースすると、ユーザーの個人情報漏洩や、サービスの信頼性失墜など、取り返しのつかない事態を招きます。

3大脆弱性を理解する

Webアプリケーションで特に注意すべき脆弱性は3つあります。

1. XSS(クロスサイトスクリプティング)

どんな攻撃か

攻撃者が悪意のあるJavaScriptコードをWebページに埋め込む攻撃です。

たとえば、掲示板のコメント欄に<script>悪意のあるコード</script>と投稿すると、そのページを閲覧した他のユーザーのブラウザで悪意のあるコードが実行されてしまいます。

被害の例

  • ユーザーのCookie(セッション情報)が盗まれ、アカウントが乗っ取られる
  • フィッシングサイトへリダイレクトされる
  • ページの内容が改ざんされる

対策

  • ユーザー入力を必ずエスケープする — HTMLの特殊文字(<>&")を無害化する
  • ReactやVueなどのフレームワークを使う — デフォルトでエスケープ処理が行われる
  • dangerouslySetInnerHTML(React)は極力使わない — 使う場合はサニタイズ処理を必ず行う
  • Content Security Policy(CSP)を設定する — 信頼できるソースからのスクリプトのみ実行を許可する

2. CSRF(クロスサイトリクエストフォージェリ)

どんな攻撃か

ユーザーがログイン中のWebサービスに対して、ユーザーの意図しないリクエストを送信させる攻撃です。

たとえば、あなたがネットバンキングにログインした状態で、攻撃者が仕掛けた悪意のあるページを開くと、あなたの口座から送金が実行されてしまう可能性があります。

対策

  • CSRFトークンを使用する — リクエストごとに一意のトークンを生成し、正規のリクエストかを検証する
  • SameSite Cookie属性を設定する — クロスサイトからのリクエストにCookieを送信しない
  • 重要な操作には再認証を求める — パスワード変更や送金時に、再度パスワードを入力させる

3. SQLインジェクション

どんな攻撃か

ユーザー入力を通じて、データベースに不正なSQL文を実行させる攻撃です。

たとえば、ログインフォームのメールアドレス欄に特殊な文字列を入力することで、認証をバイパスしたり、データベースの全データを取得されたりする危険があります。

対策

  • プリペアドステートメント(パラメータバインディング)を使う — ユーザー入力をSQL文の一部としてではなく、値として扱う
  • ORMを使う — TypeORM、Prismaなどのフレームワークは、SQLインジェクション対策が組み込まれている
  • 入力値のバリデーション — メールアドレス形式、数値範囲などを事前にチェックする

セキュリティも学べる実践型カリキュラム

その他知っておくべきセキュリティ対策

認証・認可

項目説明
パスワードのハッシュ化パスワードを平文で保存しない。bcryptなどでハッシュ化する
JWTの適切な管理トークンの有効期限を設定し、HTTPOnly Cookieで管理する
最小権限の原則ユーザーに必要最小限の権限だけを付与する

通信の保護

  • HTTPS通信の強制 — HTTP通信は盗聴される可能性がある
  • CORS設定 — 許可するオリジン(ドメイン)を明示的に指定する
  • セキュリティヘッダーの設定X-Frame-OptionsX-Content-Type-Optionsなどを設定する

データの保護

  • 環境変数にシークレット情報を保存する — APIキーやパスワードをソースコードに直接書かない
  • .envファイルを.gitignoreに含める — 誤ってGitHubに公開しない
  • 個人情報の取り扱い — 必要最小限のデータのみ収集し、適切に暗号化する

セキュリティは「後から」では遅い

セキュリティ対策は、開発の最後に付け足すものではありません。設計段階から意識し、コーディングの一部として組み込むことが重要です。

LuaGateの18ヶ月カリキュラムでは、セキュリティの基礎知識を学ぶだけでなく、実際のWebアプリケーション開発の中で脆弱性を防ぐコーディングを実践します。実践型No1女性スクールとして、現場で信頼されるエンジニアを育成しています。

API設計の基礎知識

フロントとバックエンドをつなぐ仕組みを理解する

エラーハンドリングの考え方

本番環境で動くコードの書き方

現場で通用するエンジニアスキル

スクールでは学べない実務力の全体像

LuaGateのカリキュラム

18ヶ月で実務力を身につける実践型カリキュラム

あなたに合ったページ

Other Articles

他のコラム

\ 今なら無料トライアル実施中 / 実際の教材で学びを体験してみよう

LINE登録はこちら