0

mochiweb のソース コードを見ていると、Cookie の有効期限をテストする数値が、継承したサーバーの動作とはまったく似ていません。mochiweb のソースには 111 と 86417 (1 日 + 17 秒) がありますが、Cookie の有効期限とそれをテスト コードで実行するだけのようです。(mochiweb_cookies.erl参照)

私が見ているサーバーは、約 10 ~ 15 分でユーザーをタイムアウトにしていますが、Cookie の値を設定しているコードはどこにも見当たりません。それを設定します。

何か案は?

4

1 に答える 1

3

ここには実際に 2 つの質問があります。および「でクッキーを設定するにはどうすればよいmochiweb_cookiesですか?」それ以上の情報がなくても合理的に答えることができるのは2番目のものだけです。

Req:ok("text/plain",
       [mochiweb_cookies:cookie("session", "my-session-id", [{max_age, 86417}])],
       "you're logged in!")

mochiweb_cookies:cookie/3 は、との引数の{"Set-Cookie", "headervalue"}値として適切なペアを返します。ResponseHeadersmochiweb_request:respondmochiweb_request:ok

もちろん、モジュールを使用せずに mochiweb に Cookie を設定することは可能です。Cookiemochiweb_cookiesはヘッダーにすぎません。アプリケーションがヘッダーを手作りして Cookie を設定しているか、同じドメインでホストされているプロキシまたは別のアプリケーション サービスが Cookie を設定している可能性があります。

そうは言っても、可能な限り、Cookie の有効期限に依存してユーザーをログアウトすることは避けるべきです。max-age は実際には、ブラウザがその時間が経過した後に Cookie の送信を停止するためのヒントにすぎません。ブラウザーまたは攻撃者は常に不正な動作をして、Cookie を無期限に送信する可能性があります。

于 2011-12-02T19:22:23.853 に答える