いい一日はいい睡眠から いい睡眠はいい一日から

読んだ記事のあれこれを書いていきます

2020/03/12

  • 入学手続き o
  • 英単語10words o
  • リスニング o
  • web o

Web

セッション固定化に対する対策の基本

ユーザが送るトラッキングIDを,

(original trackingID)_( hash(original trackingID + user name) )

とする.これによって,original trackingIDとhash(original trackingID + user name)を分離して,original trackingID + user name(一意)をハッシュ関数にかけて,トラッキングIDのhash(original trackingID + user name)と一致しているかでなりすましが判明する.
これでトラッキングIDの偽装を行ったとしても,ハッシュ値が異なるためトラッキングIDが偽物やんけ!となる.user nameが一意なので可能.
ただし,この方法では,

がバレると,サーバ上では区別できる(なりすましの対象としたユーザのハッシュ値と異なるため("_"以降の部分))ものの,なりすましができてしまう可能性がある.
そこでサーバ上で秘密鍵に当たる文字列を付与する.こうすることでその秘密鍵がバレない限りは,なりすましはできなくなる.なぜなら,なりすましを行おうとする人間は,ハッシュ値を生成する方法を特定したとしても,トラッキングIDを,

(original trackingID)_( hash(original trackingID + user name + secret key) )

として生成する必要があり,secret keyは知り得ないのでそもそも,ハッシュ値を生成することが不可能になる.

CSRF対策

そもそもCSRFは,ログイン中のwebページなどに意図しないデータの送信などを行うことができる脆弱性.以下を参考.

qiita.com

対策はワンタイムトークンの導入. ユーザの投稿フォームなどにワンタイムトークンを埋め込んでおく.メッセージと一緒にそのトークンも送り,一致したなら受け入れる.