增加cookie和表单提交的安全

设置COOKIE

setcookie ( string $name [, string $value = "" [, int $expire = 0 [, string $path = "" [, string $domain = "" [, bool$secure = false [, bool $httponly = false ]]]]]] )

setcookie() 定义了 Cookie,会和剩下的 HTTP 头一起发送给客户端。 和其他 HTTP 头一样,必须在脚本产生任意输出之前发送 Cookie(由于协议的限制)。 请在产生任何输出之前(包括 <html> 和 <head> 或者空格)调用本函数。

进一步增加COOKIE的安全

1. 在上面的函数中有两个参数, secure设置为true让其仅通过安全连接发送 cookie, httponly设置为true让其标记为只能通过HTTP协议访问, 阻止脚本语言编辑的脚本访问cookie, 减少通过XSS攻击进行的身份窃取。还可以在php.ini中设置session.cookie_secure为true, session.cookie_httponly为true

2. 每次用户登录之后更新cookie中的sessionid, 生成新的sessionid, 清除cookie和session的代码如下:

session_start();
$_SESSION = array(); //清除SESSION值.
if(isset($_COOKIE[session_name()])){ //判断客户端的cookie文件是否存在,存在的话将其设置为过期.
setcookie(session_name(),'',time()-1,'/');
}

session_destroy();

表单验证防止csrf攻击

1. 增加token, 用户登录后, 可以将所有链接到本站的a链接和form表单增加一个token, 保存在session中, 请求时进行token验证, 每次使用之后进行变更

2 .验证HTTP Referer域名, 除白名单之外的来源地址进行拦截

猜你喜欢

转载自www.cnblogs.com/howey/p/10455435.html
今日推荐