- - PR -
URL末尾に付くkeyのような文字列について
1
投稿者 | 投稿内容 | ||||||||
---|---|---|---|---|---|---|---|---|---|
|
投稿日時: 2006-07-03 18:44
会議室の皆さん、お世話になっています。
よくメルマガ上に張ってある商品へのリンクやパスワード再発行などのリンクのURLの語尾に付いている↓これ www.hoge.org/foo.aspx?key=ab1151de4133132b19720f793a23v368 この30文字ほどの文字列っていうのは、 どのようにして生成されているのでしょうか? 目的によって違うのでしょうが、そもそもどのように内部的に 利用されているのかが想像つきにくいです。 どなたか教えてください。 | ||||||||
|
投稿日時: 2006-07-03 18:48
商品のIDじゃないですかね?
"foo.aspx"だけじゃ、どの商品の情報が見たいのか分からないでしょ? 参考: http://www.studyinghttp.net/uri#HTTP_URI | ||||||||
|
投稿日時: 2006-07-03 18:58
ASP.NETだと、
Request.QueryString["key"]; という形でこのデータの部分を取り出せます。 商品のIDだったり、ユーザのIDだったりをここにいれておいて使ったりしますね。 IDの場合はなんらかの暗号化をしておくのが普通でしょうけど。 | ||||||||
|
投稿日時: 2006-07-03 19:42
一郎さん、どっとねっとふぁんさん ありがとうございます。
説明不足で申し訳ありません。 URL末尾の文字列を取得する方法はわかるのですが その暗号方法をみなさんどうやっているのかと思いまして・・・ 例えば商品IDのリンクをメルマガに載せるとして 商品IDに加え、いつのメルマガか?だれがクリックしたか?等の情報を サーバ側で知りたいのです。 もちろんそのためには文字列を暗号化しなければいけないと思うのですが どのような方法があるのでしょうか? | ||||||||
|
投稿日時: 2006-07-03 20:55
暗号化「しなければならない」かどうかは、時と場合によります。 URL に含めてしまっている以上、暗号化したとしても秘匿性はたかがしれています。
そういう付加情報は Session オブジェクトに収録するのがよくある実装です。 | ||||||||
|
投稿日時: 2006-07-03 21:21
システムによるんじゃないでしょうか。 私宛てに最近来るスパムは、逆にエンコードしてない連番丸見えみたいなのが多いです。 http://www.example.com/?ab12 みたいな感じで。 とりあえず、そういうのには、 http://www.example.com/?aa23 でアクセスしてやります。
凝ったのもたまにはあるのだと思いますが、大抵のエンコードは BASE64 に毛が5mmほど生えた程度のものではないでしょうか。 こういうものは情報量が限られますから、「商品ID」ではなく「セッションID」で持っているはずです。すなわち、セッションIDと、それに紐付く商品ID,顧客ID,メールアドレス,送信日時,etc. の対応表をサーバー側でずっと持っているのが普通でしょう。 そしてセッションIDを、裸で渡すか、単純なシーザー暗号程度にするか、デジタル署名まで付けるか、は開発者の腕の見せ所です。 #以下、あとで追加。 手抜きですが、 foo.aspx?key=ab1151de4133132b19720f793a23v368 の太字のところだけが可変の連番で他は固定、でもいいかも。 -- unibon {B73D0144-CD2A-11DA-8E06-0050DA15BC86} [ メッセージ編集済み 編集者: unibon 編集日時 2006-07-03 21:24 ] [ メッセージ編集済み 編集者: unibon 編集日時 2006-07-03 21:25 ] [ メッセージ編集済み 編集者: unibon 編集日時 2006-07-03 21:26 ] [ メッセージ編集済み 編集者: unibon 編集日時 2006-07-03 21:26 ] [ メッセージ編集済み 編集者: unibon 編集日時 2006-07-03 21:27 ] | ||||||||
|
投稿日時: 2006-07-03 22:39
渋木宏明(ひどり)さん、unibonさん ありがとうございます。
なるほど、やはりセッションIDですね。 DBにセッションIDと商品IDや会員ID等を含んだテーブルを作って メールを送信したらレコードを作り、一回でもそのセッションIDでアクセスされたら そのレコードを消すといった方法にしてみます。 それとも生セッションIDだけでは危険なんでしょうか・・・ |
1