增加cookie和表单提交的安全
Posted howey
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了增加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域名, 除白名单之外的来源地址进行拦截
以上是关于增加cookie和表单提交的安全的主要内容,如果未能解决你的问题,请参考以下文章
SpringBoot中表单提交报错“Content type ‘application/x-www-form-urlencoded;charset=UTF-8‘ not supported“(代码片段