タグ

sessionに関するakira1908jpのブックマーク (5)

  • PHPサーバーサイドプログラミングパーフェクトマスターのCSRF対策に脆弱性

    サマリ PHPサーバーサイドプログラミングパーフェクトマスターには、PHP入門書としては珍しくクロスサイト・リクエストフォージェリ(CSRF)対策についての説明があるが、その方法には問題がある。アルゴリズムとして問題があることに加えて、実装上の問題があり、そのままコピペして用いると脆弱性となる。 はじめに 古庄親方の以下のツイートを見て驚きました。 CSRF用のトークンの作成 $token = password_hash(mt_rand(), PASSWORD_DEFAULT); ってのを書籍で見た………もンのすンげぇなぁ(苦笑 書籍名でググって調べる……評判が悪いので、まぁ、納得っちゃぁ納得。 — がる (@gallu) July 17, 2019 CSRFトークンの生成に、password_hash関数を使うですと? 親方に書籍名を教えていただき、購入したのが、この記事で紹介する「PH

  • H2O the optimized HTTP/1.x, HTTP/2 server

    H2O is a new generation HTTP server that provides quicker response to users with less CPU, memory bandwidth utilization when compared to older generation of web servers. Designed from ground-up, the server implements of HTTP/2 and HTTP/3 taking the advantages of features including new and old content prioritization schemes, server push, 103 Early Hints, promising outstanding experience to the visi

  • PHP: session_decode - Manual

    I noticed that the posted solutions for manually decoding sessions are not perfect, so I've contributed a more robust solution. The preg_match solution can never work. It's not so hard to find a case that might break unserialization. In the case of jason-joeymail is breaks on: <?php $_SESSION["test"] = ";oops|"; ?> Below you can find my solution. It doesn't use a regular expression but rather the

  • ログアウト機能の目的と実現方法

    このエントリでは、Webアプリケーションにおけるログアウト機能に関連して、その目的と実現方法について説明します。 議論の前提 このエントリでは、認証方式として、いわゆるフォーム認証を前提としています。フォーム認証は俗な言い方かもしれませんが、HTMLフォームでIDとパスワードの入力フォームを作成し、その入力値をアプリケーション側で検証する認証方式のことです。IDとパスワードの入力は最初の1回ですませたいため、通常はCookieを用いて認証状態を保持します。ログアウト機能とは、保持された認証状態を破棄して、認証していない状態に戻すことです。 Cookieを用いた認証状態保持 前述のように、認証状態の保持にはCookieを用いることが一般的ですが、Cookieに auth=1 とか、userid=tokumaru などのように、ログイン状態を「そのまま」Cookieに保持すると脆弱性になります

    ログアウト機能の目的と実現方法
  • symfonyのユーザ自動ログアウトとセッションタイムアウトについて - ゆっくり*ゆっくり

    これは僕がアホというか、単純にわかってなかっただけの話なのですが。 symfonyでは一定時間経つとユーザをログアウトさせるという設定が可能です。アプリケーションのfactories.ymlでuserのパラメータにtimeoutという値が設定でき、そこに秒数を指定するとできるようになります。 sfBasicSecurityUserクラスのinitialize()メソッドの中で、現在の時間と最終アクセス時の差分が設定したtimeoutよりも大きい場合、自動的にログアウトする処理を行っています。 その際にiniのsession.gc_maxlifetimeという値をユーザの自動ログアウトと同じ時間に設定しています。 session.gc_maxlifetimeという設定はセッションをクリアするまでの秒数を設定するものなのですが、てっきりここでセッションの有効時間もちゃんと設定してくれてすごいな

    symfonyのユーザ自動ログアウトとセッションタイムアウトについて - ゆっくり*ゆっくり
  • 1