2

suhosin のようにセッション データを暗号化したいのですが、それを提供するライブラリはありますか?

4

2 に答える 2

4

mcrypt またはカスタム AES 暗号化を使用して、セッション データを簡単に暗号化できます。最善の策は、変数を設定するときに変数を暗号化するセッション ラッパー クラスを作成することです。

キー管理の場合、一意のキーを作成して Cookie に保存すると、ユーザーだけが自分のセッション データを復号化できるようになります。

于 2009-11-08T14:26:01.003 に答える
1

ここに Zend Framework の実装例があります: http://www.eschrade.com/page/encrypted-session-handler-4ce2fce4/

参照のための重要な機能:

// $this->secredKey is stored in a cookie
// $this->_iv is created at the start
public function setEncrypted($key, $value)
{
    $_SESSION[$key] = bin2hex(
        mcrypt_encrypt(
            MCRYPT_3DES,
            $this->secretKey,
            $value,
            MCRYPT_MODE_CBC,
            $this->_iv
        )
    );
}

public function getEncrypted($key)
{
    if (isset($_SESSION[$key])) {
        $decrypt = mcrypt_decrypt(
            MCRYPT_3DES,
            $this->secretKey,
            pack(
                'H*',
                $_SESSION[$key]
            ),
            MCRYPT_MODE_CBC,
            $this->_iv
        );
        return rtrim($decrypt, "\0"); // remove null characters off of the end
    }
    return null;
}
于 2013-06-13T07:26:55.610 に答える