返回顶部
首页 > 资讯 > 后端开发 > PHP编程 >PHP中的session安全吗?
  • 762
分享到

PHP中的session安全吗?

2024-02-27 20:02:52 762人浏览 泡泡鱼
摘要

如果不做特殊处理,仅是使用PHP中原生的session的话,确实不安全。php只是为我们提供了一个session的实现,后续的安全工作需要程序员自己灵活去掌握,所以说PHP编程真的很灵活。 做PHP

如果不做特殊处理,仅是使用PHP中原生的session的话,确实不安全php只是为我们提供了一个session的实现,后续的安全工作需要程序员自己灵活去掌握,所以说PHP编程真的很灵活。

做PHP开发这么长时间,还真没有真正关注过安全的问题,每次都是以完成项目为主,最近在网上看到了一篇关于安全的文章,看完以后才注意到自己以前的项目都存在着很大的安全漏洞,于是挑了一个项目进行了测试,发现很容易就中招儿了。在这里我会分享自己写的一个测试的例子来说明PHP中的session是如何不安全的,以及在项目中如何加强其安全性。

对于session的原理机制,网上有很多好的文章来介绍,我们可以自行查阅。下面直接分享测试用的例子。

这个测试的例子主要就是一个登录页,登录成功以后可以修改密码,就这样一个简单的功能。

界面如下

 

迹忆博客——界面图1

迹忆博客——界面图2

 

首先是在项目入口的地方使用函数 session_start() 开启了session。这样当客户端发起请求的时候,会产生一个身份标识 也就是 SessionID。通过cookie的方式保存在客户端,客户端和服务端每次的通信都是靠这个SessionID来进行身份识别的。

登录成功以后,会将 用户id、用户名存入session中

$_SESSION[‘userid’] = 用户id
$_SESSION[‘uname’] = 用户名

以后所有的操作都是通过判断 $_SESSION[‘userid’]是否存在来检查用户是否登录。代码如下:

if(isset($_SESSION['userid'])) return true;

对于修改密码接口的调用是通过ajax  post的方式将数据传输到服务端的。

$.post("接口*******",
   {
         oldpass:oldpass,
         newpass:newpass,
         userid:uid,
    },
    function(data){
         data = eval('(' +data+ ')');
         $('.grant_info').html(infos[data.info]).show();
    }
);

注意,我这里将这段代码写在了html页面中,所以说如果看到了html代码,也就知道了接口地址了。

修改密码的接口是这样实现的,首先是判断用户是否登录,如果登录才会进行密码的修改操作。

测试例子的实现思路大概就是上面介绍的那样。

利用SessionID攻击

1. 首先是获取SessionID,当然攻击者获取此标识的方式有很多,由于我的水平有限,至于如何获取我在这里不做介绍。我们可以模拟一下,先正常访问此项目,然后通过浏览器查看SessionID,以此得到一个合法的用户标识。可以在请求头中看到此项ID

 

Accept: text/html,application/xhtml+xml,application/xml;q=0.9,**;q=0.8
Accept-Encoding: gzip, deflate
Accept-Language: zh-CN,zh;q=0.8,en-US;q=0.5,en;q=0.3
Connection: keep-alive
Cookie: Hm_lvt_bf1154ec41057869fceed66e9b3af5e7=1450428827,1450678226,1450851291,1450851486; PHPSESSID=2eiq9hcpu3ksri4r587ckt9jt7;
Host: ******
Referer: ******
User-Agent: Mozilla/5.0 (Windows NT 6.1; rv:41.0) Gecko/20100101 Firefox/41.0

 

在项目开始的时候最初我们只是用了session_start()函数来开启session。现在我们可以在session_start() 下面 添加这段代码

$_SESSION[‘User_Agent’] = md5($_SERVER[‘Http_USER_AGENT’]);

然后在每次判断是否登录的时候,添加判断条件如下

If(isset($_SESSION[‘userid’]) && $_SESSION[‘User_Agent’] == md5($_SERVER[‘HTTP_USER_AGENT’])){
       return true;
}

这样就可以避免上述简单的攻击

总结

当然,实际情况中的攻击远非这么简单,首先在获取SessionID这一步就比较困难,然后就是和服务端交互的代码尽量加密,可以避免上述的情况。在我们第二次修改代码以后,可以增加攻击的复杂程度,并不能杜绝攻击。攻击的方式多种多样,这里只是一种简单的方式,仅提供一种思路,但是原理是一样的,在实际情况中可以根据实际情况增强我们代码的安全程度。由于我的水平有限,这里只是分享自己在工作中碰到的问题,权当抛砖引玉,如果大家有什么好的意见,请在下面留言,共同讨论,共同提高。

--结束END--

本文标题: PHP中的session安全吗?

本文链接: https://lsjlt.com/news/568942.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • PHP中的session安全吗?
    如果不做特殊处理,仅是使用PHP中原生的session的话,确实不安全。PHP只是为我们提供了一个session的实现,后续的安全工作需要程序员自己灵活去掌握,所以说PHP编程真的很灵活。 做PHP...
    99+
    2024-02-27
  • PHP Session 跨域安全性分析
    概述:PHP Session 是一种在 Web 开发中常用的技术,用于跟踪用户的状态信息。虽然 PHP Session 在一定程度上提高了用户体验,但它也存在一些安全性问题,其中之一就是跨域安全性问题。本文将对 PHP Session 的跨...
    99+
    2023-10-21
    PHP 编程 安全性分析 PHP Session 跨域
  • 网站安全防护中的session安全是什么
    这篇文章给大家介绍网站安全防护中的session安全是什么,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。网站安全防护中session会话安全是目前安全防护中,必须要进行安全部署的,session关系着整个用户登录网站与...
    99+
    2023-06-03
  • php网络安全session利用的小思路
    目录前言session文件包含php.ini[WMCTF 2020]Make PHP Great Againsession维持方法一 | 借助Burp Suite方法二 | pyth...
    99+
    2024-04-02
  • PHP Session 跨域与Web安全的融合应用
    随着互联网技术的发展,Web应用程序的开发变得常见且日益复杂。在处理用户认证、权限管理和数据保护等方面,Web应用程序的安全性显得尤为重要。而PHP Session机制的使用,可以帮助我们实现这些目标。本文将介绍如何将PHP Session...
    99+
    2023-10-21
    PHP session 跨域
  • PHP Session 跨域的安全审计与漏洞挖掘
    摘要:随着互联网的发展,越来越多的网站开始使用PHP Session来管理用户的登录状态和数据。然而,由于PHP Session的特性,使得它存在一些安全风险,尤其是在跨域访问的情况下。本文将介绍PHP Session跨域安全审计的重要性,...
    99+
    2023-10-21
    PHP Session 跨域 安全审计 漏洞挖掘
  • 深入探索 PHP Session 跨域的数据安全性
    在现代网页开发中,跨域问题一直是开发人员需要面对和解决的一个重要问题。当涉及到用户身份认证和会话管理时,跨域问题变得尤为重要。本文将深入探讨 PHP Session 跨域的数据安全性,并提供具体的代码示例。首先,为了明确问题,我们需要了解什...
    99+
    2023-10-21
    数据安全性 PHP Session 跨域
  • PHP 中的 session ID
    会话 ID 的主要用途之一是识别 Web 应用程序上的用户或事件。本文将解释如何借助内置的 PHP 函数(如 session_start() 和 session_id())使用 PHP 会话 ID。 ...
    99+
    2024-02-27
  • php中session的用法
    session 是服务器端存储机制,用于在用户访问期间存储和检索用户信息,包括页面访问、购物车内容和登录状态。其使用方法包括:启动 session、设置 session 变量、检索 se...
    99+
    2024-05-15
  • 如何加固网站的session安全
    如何加固网站的session安全,针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。网站安全防护中session会话安全是目前安全防护中,必须要进行安全部署的,session关系...
    99+
    2023-06-07
  • PHP session的反序列化你了解吗
    session反序列化的漏洞是由三种不同的反序列化引擎所产生的的漏洞 其中 session.serialize_handler string--定义用来序列化/反序列化的处理器名字。...
    99+
    2024-04-02
  • PHP中的安全评估
    随着互联网的发展,网络安全越来越受到人们的关注。而PHP作为一种常用的服务器端语言,安全问题也越来越重要。因此,在使用PHP编写代码时,我们需要进行安全评估,以确保应用程序的安全性。本文将介绍PHP中的安全评估,包括常见的安全问题和如何避免...
    99+
    2023-05-23
    安全性评估 漏洞检测 加密技术
  • PHP中的安全测试
    在Web开发中,PHP是广泛使用的服务器端脚本语言之一。尽管PHP为开发者提供了很多便利,但是由于其易受攻击的特性,也使得PHP网站面临着安全威胁。恶意攻击者可以利用漏洞来窃取用户数据,破坏网站性能等。因此,为了确保PHP网站的安全性,进行...
    99+
    2023-05-24
    PHP编程 安全编程 安全性测试
  • PHP中的安全规范
    在网络时代,安全威胁一直存在。对于PHP开发中的安全问题,必须引起我们的关注。本文将介绍一些PHP中的安全规范。1.过滤用户输入在PHP开发中,用户输入经常成为攻击者攻击的目标。攻击者往往通过用户输入的方式注入恶意代码来实现攻击,比如SQL...
    99+
    2023-05-24
    PHP编程 安全性 安全规范
  • PHP中的数据安全
    随着互联网的普及和发展,越来越多的人开始使用PHP语言进行开发。PHP作为一种脚本语言在Web开发中有着广泛的应用,但是在使用PHP语言进行开发时,我们也不可避免地遇到数据安全的问题。本文将介绍PHP中的数据安全问题并提供对应的解决方法。S...
    99+
    2023-05-24
    sql注入 数据过滤 XSS攻击
  • PHP中的安全管理
    随着互联网技术的不断发展,PHP已成为最为流行的服务器端脚本语言之一。然而,安全问题在网络环境中无处不在,安全管理也成为了每个PHP开发者必须要考虑的问题。本文将会从以下几个方面来探讨PHP中的安全管理。一、输入验证输入验证是指对所有从应用...
    99+
    2023-05-23
    安全性(Security) 管理(Management) PHP程序(PHP Program)
  • PHP 函数在不同环境中的安全性差异吗?
    不同运行时环境对 php 函数的安全性有影响:apache:一般安全,但也需注意 exec 和 system 等函数的配置。nginx:与 apache 类似,但需小心 fastcgi_...
    99+
    2024-04-18
    php 安全性 apache nginx
  • HTTPS是安全的吗
    这篇文章主要介绍“HTTPS是安全的吗”,在日常操作中,相信很多人在HTTPS是安全的吗问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”HTTPS是安全的吗”的疑惑有所帮助!接下来,请跟着小编一起来学习吧!「一...
    99+
    2023-06-19
  • 你的Helm安全吗?
    一、背景Kubernetes是目前最为流行、成为事实标准的容器集群管理平台,为容器化应用提供了部署运行、资源调度、服务发现和动态伸缩等一系列完整功能。在Kubernetes当中,用户通过使用API对象,如Pod、Service、Deploy...
    99+
    2023-06-04
  • PHP中的web安全指南
    PHP是一种广泛应用于Web开发的服务器端脚本语言,但在Web应用程序开发中,安全性是至关重要的。本文将探讨PHP中的Web安全性问题,并提供一些PHP开发人员可以遵循的安全指南。防止SQL注入攻击SQL注入攻击是指攻击者在SQL查询中注入...
    99+
    2023-05-21
    指南 PHP web安全
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作