- r - 以节省内存的方式增长 data.frame
- ruby-on-rails - ruby/ruby on rails 内存泄漏检测
- android - 无法解析导入android.support.v7.app
- UNIX 域套接字与共享内存(映射文件)
我有一个关于PHP中 session 劫持的问题。我今天早上一直在阅读有关它的信息,我有一些问题在我阅读的文档中并未得到明确回答。
用户可以更改他们在我的网站上的 session 吗?也就是说,如果他们在登录时拥有X session ,是否可以选择将该 session 更改为Y或Z?
我以为 session 是由浏览器设置的,无法更改,但是我一直在阅读的所有 session 劫持内容都使我心存疑虑。
最佳答案
术语“ session ”被重载以表示服务器上和浏览器中的不同内容。浏览器 session 最多只能与服务器 session 紧密连接。 “ session 劫持”是指服务器sessions。
在服务器端, session 具有一个ID(在客户端和服务器之间传递),内容(存储在服务器上)以及可能的其他属性(例如上次访问时间)。 session ID通常以cookie的形式传递。在PHP中,cookie的默认名称为“PHPSESSID”。如果没有cookie,PHP将(可选)使用同名的查询字符串参数(“PHPSESSID”)。此cookie(或查询参数)可以轻松更改,因此 session 标识符也可以更改。
session 的内容(即包含用户的登录状态)不能由客户端更改,数据存储在服务器上,只能由该服务器上的PHP脚本更改。请注意,在共享主机环境(由其他服务或用户共享)中,如果使用默认 session 存储目录(/tmp
),则可以覆盖 session 。为了防止这种情况,要么通过 session_set_save_handler()
使用数据库,要么使用 session.save_path
设置一个具有适当目录权限的自定义 session 目录(最好设置为700,这意味着只有所有者(PHP用户)才能对其进行读写)。
为了防止 session 劫持,您必须具有其他方法可以根据 session 识别用户。这可以是用户代理,IP地址或其他cookie。前面提到的方法只是解决方法,如果涉及到 session ,则最好使用HTTPS来防止 session cookie被窃取,这是最好的方法。不要忘记使用 httponly
将true
标志设置为session_set_cookie_params()
在客户端,“ session ”再次过载并在各种上下文中使用(例如, session 管理器,当打开浏览器时, session 管理器会还原打开的页面, session cookie和 sessionStorage
)。我们可以说浏览器 session 由 View 及其相关数据的集合组成,以尝试将这些含义组合在一起(绝不是标准的含义)。 (通过“ View ”,我指的是带标签的浏览器中的选项卡,而非带标签的浏览器中的窗口; DOM window
对象向JS公开一个 View 。)每个 View 都有一个历史记录,一个当前页面和页面数据。 session 中的 View 之间共享同一域中页面的页面数据;如果两个页面位于不同的域或不同的 session 中,则它们不共享数据。退出浏览器会关闭所有打开的 session ,可能会保存部分 session (例如历史记录,当前页面,sessionStorage
),以便 session 管理器可以重新打开它们。 session cookie是在 session 关闭时被丢弃的cookie。换句话说, session cookie是非持久性的。尽管 session cookie可以保存 session ID,但是这两个概念是orthogonal(意义4; session cookie可以保存 session ID以外的内容,并且可以将 session ID存储在持久性cookie中)。
同一集合中是否有两个不同的 View 取决于浏览器。例如,一个浏览器可能认为一个 session 由一个窗口中的所有选项卡组成;单独的窗口是单独的 session 。 IE8允许用户通过“新 session ”菜单项创建新 session 。否则,将在同一 session 中打开新的窗口和选项卡。隐私模式还会创建新的 session 。
总而言之,浏览器 session 确实是由浏览器设置的,尽管它为用户提供了多种控制浏览器 session 的方式:创建新 session ,通过浏览,保存和还原 session 来更改 View 中的历史记录和当前页面。用户甚至可以通过编辑保存在磁盘上的 session 来更改 session 数据,尽管这不是浏览器提供的功能。这些都与 session 劫持无关。服务器 session 由服务器创建和管理,但是用户可以(尝试)通过更改其浏览器传递回服务器的 session ID来切换服务器 session ,这是 session 劫持的基础。
另请参见PHP Session Fixation / Hijacking。
关于php - PHP session 劫持,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6483092/
当一个对象被实例化时,无论是字符串/函数/等等,__proto__属性(property)包括在内。该属性似乎是由 __proto__ 生成的Object.prototype 中的访问器... Obj
我一直在寻找防止 session 劫持的方法,在这种情况下,有人会窃取 session cookie 并使用它来获得对系统的访问权限。 程序如 http://codebutler.com/firesh
某些 malware such as AVG劫持 404 页面,以便在浏览器中显示一个布满自己广告的页面。 我发现的唯一解决方法是在我的 web 应用程序中放弃自定义错误页面的 404 http 状态
大多数Web应用程序使用cookie来管理用户的 session ,即使关闭了浏览器,也允许您保持登录状态。 让我们假装我们做了书中的所有事情,以确保保存cookie本身。 加密内容 仅设置http
WinError.h中定义的错误代码是否可以被劫持并通过我自己的代码返回? 定义了一些通用 Win32 错误代码: ERROR_FILE_NOT_FOUND:“系统找不到指定的文件。” 当找不到文件时
修改文本然后单击按钮只会触发 onchange 代码 但我需要知道按钮是否被点击: 我需要更改什么才能获取点击处理程序? 最佳答案 效果很好,但 alert() 很糟糕。 我不知道它的确切细节,但
如何保护我的用户免受 session 劫持? 最佳答案 Owasp Top 10 for 2010 中包含三个部分你应该阅读。 1: (!!) A3:“损坏的身份验证和 session 管理。” (!
我有一个问题。我试图在音频元素发生变化时立即获取它的来源,而不是让它连接到服务器。让我详细说明一下:服务器只允许一个请求(随机生成的内容 url),我正在尝试获取该请求,显然我不希望使用新源重新加载音
我需要一种 JavaScript/jQuery 方法来“劫持”不基于类或 ID 的 CSS 定义。 CSS 示例: input { border: 1px solid red; } 如果我有一
一位黑客联系我说他们会使用 session 劫持来关闭我的网站,他说我的文本框存在 session 劫持漏洞。 有没有办法保护文本框免受 session 劫持我用它来逃避和防止 sql 注入(inje
我一直在研究一套安全的登录/门户类型的工具,通用代码没有 SQL 注入(inject)、XSS 等,我有很多东西可以阻止 session 劫持。 为每个页面重新生成 session ID 将用户的IP
在我的 web.xml 中,我为一些资源定义了一个用户数据约束: Personal Area /personal/* U
情况 好吧,正如您在下面看到的,我有一个主应用程序,它创建了一个线程,它创建了一堆后台 worker 。当 RunWorkerCompleted 在某些 BG worker 上被触发时,我有时最终会丢
当我的 golang 应用程序崩溃时,它正在打印 go routines 堆栈跟踪并退出。我想知道是否有很好的方法来获取 panic 输出以进行进一步处理。重定向 stderr 是不够的,因为人们想在
我有一个关于PHP中 session 劫持的问题。我今天早上一直在阅读有关它的信息,我有一些问题在我阅读的文档中并未得到明确回答。 用户可以更改他们在我的网站上的 session 吗?也就是说,如果他
如何防止多个客户端使用相同的 session ID?我问这个是因为我想添加一个额外的安全层来防止我的网站上的 session 劫持。如果黑客以某种方式找出另一个用户的 session ID 并使用该
我想更多地了解 PHP Session Fixation和劫持以及如何防止这些问题。我一直在 Chris Shiflett 的网站上阅读以下两篇文章: Session Fixation Session
DNS 劫持作为最常见的网络攻击方式,是每个站长或者运维团队最为头疼的事情。苦心经营的网站受到 DNS 劫持后,不仅会影响网站流量、权重,还会让用户置身于危险之中,泄露隐私造成财产损失。 就是这样
编辑:对于那些想知道该 SDK 是什么的人来说,它是 Flurry 的中文克隆版,==>> Umeng。 编辑2:在那个奇怪的SDK中实际上有一个禁用崩溃日志处理选项,这将使我的uncaughtExc
我阅读了 Nancy Forms Authentication 的文档.据我所知,那里推荐的方法会导致终身 session ID: "The identifier is the token that
我是一名优秀的程序员,十分优秀!