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ページなどに意図しないデータの送信などを行うことができる脆弱性.以下を参考.
対策はワンタイムトークンの導入. ユーザの投稿フォームなどにワンタイムトークンを埋め込んでおく.メッセージと一緒にそのトークンも送り,一致したなら受け入れる.