static function cookie() { $param = func_get_args(); if (func_num_args() === 1) { $key = $param[0]; if (is_array($param[0])) { $key = $param[0][0]; if (isset($param[0][1]) && $param[0][1]) { $key = secure::token($param[0][0]); } } if (isset($_COOKIE[$key])) { if (is_numeric($_COOKIE[$key]) && $_COOKIE[$key] <= 2147483647) { return $_COOKIE[$key] + 0; } return secure::symbol(trim(htmlspecialchars(strip_tags($_COOKIE[$key])))); } return null; } list($key, $value) = $param; $expire = isset($param[2]) ? $param[2] : 31536000; if (isset($param[3]) && $param[3]) { $key = secure::token($key); } $expire += time(); return setCookie($key, $value, $expire, '/', trim(SITE_DOMAIN, 'www.')); }
static function clear($key = null, $is_secret_key = false) { $is_secret_key and $key = secure::token($key); if (is_null($key)) { session_unset(); } elseif (is_array($key)) { foreach ($key as $k) { unset($_SESSION[$k]); } } else { unset($_SESSION[$key]); } return true; }
static function csrf($mode, $csrf = '') { $key = config('secure.csrf_name', 'secure'); if ($mode === 'get') { return session::get($key); } if ($mode === 'check') { //Notice 是否只用一次并清掉cookie // input::cookie($key,$value,1); return $csrf && $csrf === session::get($key); } if ($mode === 'set') { $value = substr(secure::token(time()), 5, 8); session::set($key, $value); input::cookie($key, $value, 7200); } return true; }