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-09-13手动在github上下载的mfpt包,怎么放到thinkphp5.0框架并正常使用-icode9专业技术文章分享
- 2024-09-05python的<class 'bytearray'>相当于php的哪个数据类型-icode9专业技术文章分享
- 2024-09-05php 导出银行卡号避免科学技术法的方法-icode9专业技术文章分享
- 2024-08-30什么样的php代码质量差被称为垃圾代码-icode9专业技术文章分享
- 2024-08-30用 PHP 调用拼多多的接口以获取订单状态消息的步骤方法和代码示例-icode9专业技术文章分享
- 2024-08-27phpunit单元测试框架的入门和使用方法介绍-icode9专业技术文章分享
- 2024-08-24PHP 中date("w") 周一是多少-icode9专业技术文章分享
- 2024-08-14thinkphp8.0获取域名或主机名方法-icode9专业技术文章分享
- 2024-08-14nginx添加只允许网站根目录index.php可以执行,其他php都不能执行示例代码-icode9专业技术文章分享
- 2024-08-10nginx 如何配置可以访问某个php文件-icode9专业技术文章分享