PHP安全
2021/4/8 22:26:15
本文主要是介绍PHP安全,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
输入数据过滤和验证
验证不改变数据,过滤会改变数据
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安全的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-11-23怎么实现安卓+php 热更新方案?-icode9专业技术文章分享
- 2024-11-22PHP 中怎么实现判断多个值是否为空、null 或者为 false?-icode9专业技术文章分享
- 2024-11-11开源 PHP 商城项目 CRMEB 二次开发和部署教程
- 2024-11-09怎么使用php在kaufland平台刊登商品?-icode9专业技术文章分享
- 2024-11-05PHP的抽象类和接口是什么,有什么区别-icode9专业技术文章分享
- 2024-11-01开源 PHP 商城项目 CRMEB 安装和使用教程
- 2024-11-01用php和mysql写无限分类,有哪几种方法-icode9专业技术文章分享
- 2024-10-31php数据分表导出时部分数据无法导出什么原因-icode9专业技术文章分享
- 2024-10-30有经验的 PHP 开发者学习一门新的编程语言,有哪些推荐的有前景的语言-icode9专业技术文章分享
- 2024-10-21php 检测图片是否篡改过-icode9专业技术文章分享