码迷,mamicode.com
首页 > Web开发 > 详细

PHP安全

时间:2021-04-09 13:15:26      阅读:0      评论:0      收藏:0      [点我收藏+]

标签:php   验证   method   rand   print   ddr   过期   xss   star   

输入数据过滤和验证

验证不改变数据,过滤会改变数据

session安全处理

1. 如果存储在cookie中的phpsessid被跨站脚本攻击(XSS)获取了,要尽可能缩短原有的会话id的有效时间
session_starrt();
session_regenerate_id();	//重新生成会话id,使旧的过期

2. 注销操作
	session_unset();
	session_destroy();
	setcookie(‘PHPSESSID‘, 0, time()-3600);
	
3. 为浏览者创建指纹。
	$footprint = md5($_SERVER[‘REMOTE_ADDR‘]
		.$_SERVER[‘HTTP_USER_AGENT‘]
		.$_SERVER[‘HTTP_ACCEPT_LANGUAGE‘]);
	$printMatch = !file_exists(PRINT_DIR . $footprint);
	if ($_SESSION[‘loggedId‘] && !$printMatch) {
		//登录过期。。。
	}

使用令牌防止表单重复提交

session_start();
$_SESSION[‘token‘] = $token = urlencode(base64_endode(random_bytes(20)));
//去生成表单
<input type="hidden" name="token" value="<?= $token?>" >

//提交
if ($_POST[‘token‘] != $_SESSION[‘token‘]) {
	//token不匹配
}

使用更为安全的加密算法

mcrypt以来的类库已经被废弃了,可以使用openssl*相关函数
openssl_get_cipher_methods() # 查看支持的算法

加密
$text = ‘some text‘;
$method = ‘aes-256-xts‘;
$key = random_bytes(16);
$iv = random_bytes(16);
$cipherText = base64_encode(openssl_encrypt($text, $method, $key, 0, $iv));

解密
$word = openssl_decrypt(base64_decode($cipherText), $method, $key, 0, $iv);

PHP安全

标签:php   验证   method   rand   print   ddr   过期   xss   star   

原文地址:https://www.cnblogs.com/august-fz/p/14634817.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!