- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
只是想知道是否要求将散列的 PHPSESSID 发送到所有表单或操作脚本是否足以进行 CSRF 保护?我知道如果用户在同一物理网络 (firesheep) 上,则可以获得此信息。示例:
http://site.com/deleteMessage.php?mid=22&token=MD5ed_PHPSESSID
忽略相同的网络问题 PHPSESSID:
1) Is known only to the user doing the action
2) Can not be guessed by an attacker crafting a malicious img or request (<img src="http://site.com/deleteMessage.php?mid=22&token=I_DONT_KNOW_IT_:( )
3) Can not be pulled on the same site assuming no XSS vulnerabilities exist.
4) Can easily be pulled by the legitimate user (Javascript fills the form or GET var in the link)
第 3 点让我担心,虽然我没有任何我知道的 XSS 漏洞,因为我 htmlentities($string,ENT_QUOTES)ed 一切,我不喜欢依赖假设。这是足够的 CSRF 保护还是有更好的方法?
最佳答案
如果攻击者知道 session ID,那么他就不必使用 CSRF 来影响受害者的 session 。使用散列 session ID 是一种不好的做法,但这不是漏洞。您甚至可以使用 session ID 本身,并且它在技术上不易受到 CSRF 的攻击。但它增加了失败的可能性,而防止这种失败是免费的。另一个加密随机数很容易生成。
XSS 破坏了 CSRF prevention cheat sheet 上的所有保护方法除了使用 capthca。也就是说,您应该使用 HTTP_Only cookie 标志来保护您的 session ID 免受 XSS 攻击。
请记住,HTTP_only 标志不会阻止 XSS!,它只会增加利用的难度。通常,攻击者使用 XHR 来读取 CSRF token 以“骑乘” session 而不是劫持 session ID。
关于php - CSRF 保护 : Hashed PHPSESSID enough?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8977046/
我有一个 iOS 应用程序向基于 PHP 的 Web 服务发送请求,过去一切正常,但最近我一直在丢失 session 。 我检查了 cookie 并注意到 PHPSESSID 在我发送的每个请求上都发
正如标题所说,我想知道,因为它无法识别 DB_Functions 类中的 $sessionID 变量。 当我检查表时,除了变量 sessionID 之外的所有字段都已存储。 最佳答案 两种方式修复:
我对 PHPSESSID 漏洞感到困惑。如果我将 document.cookie 更改为另一个活跃用户的(在像 youtube 或 instagram 这样的简单社交媒体网站上 [只是一个例子])PH
Psudeocode 或 PHP 代码可取。更好地引用了手动生成 PHPSESSID 的组件和过程。 最佳答案 生成sssion ID的代码是here - 但它是 C,因为这就是 PHP 本身的实现方
我正在将 PHPSESSID 传递到 PHP 页面(通过 POST),我想知道清理输入的最佳方法是什么。 mysql_real_escape_string 就足够了吗?在处理 session ID 时
在我当前的应用程序中,PHPSESSID Cookie 被发送了多次。这是一个示例响应: HTTP/1.1 200 OK Date: Tue, 11 Jun 2013 08:18:29 GMT Ser
保存 session ID 的 PHPSESSID 变量没有保存到客户端 cookie 中。这导致我每次调用 session_start() 函数时都会生成一个新的 session ID。 当我使用
我有一个用 PHP 编写的登录表单,每次我启动浏览器并转到相应的页面时,表单的第一个字段是这样的: 如果我关闭窗口,但不重新启动浏览器,则不会发生这种情况。知道发生了什么以及为什么吗? 谢谢! 表单
问题更新: 在某些浏览器上,我们有两个 PHPSESSID。 我没有在我的脚本中的任何地方设置一个 PHPSESSID 它的 HOST(而不是我设置的 PHPSESSID 的 DOMAIN)为 www
想知道如何将 PHP session ID 从 PHPSESSID 更改为其他内容,以便它不会干扰在同一域上运行的其他 PHP 脚本。这可能吗? 谢谢你的时间 最佳答案 查看此链接以获取 PHP ru
我在玩 cookies 。而且我没有任何名为 PHPSESSID 的 cookie。 我需要吗?我可以删除它吗? 它的“功能”是什么? if (count($_POST)) { setcookie("
我们在 PHP session Cookie 方面遇到了一些问题,无法登录到我们的 *SugarCRM** 应用程序,该应用程序是开源 PHP 应用程序。 问题是我们在 2 个子域上安装了相同的应用程
我想执行一些帖子,但这篇帖子需要 PHPSESSID 和一个参数。如果我从浏览器获取此参数并在我的代码中执行,则一切正常。不幸的是,当我使用我的代码获取“PHPSESSID”和参数的页面内容和 coo
尽我所能,我无法让 curl 传递 PHPSESSID cookie。我的设置与其他几个人所描述的设置类似,但我无法使任何建议的解决方案发挥作用。 我有一个页面向 pageA.php 发送获取请求。
我注意到每天有多个用户被分配相同的 session_id。我现在使用的是 php 7.2,但回顾用户 session 的历史记录,自从我使用 php 5.4 以来一直在发生这种情况。 我只是使用 ph
我想知道出于安全目的是否值得使用 session_name() 函数将默认的 phpsessid 重命名为散列或加密的 id? 如果是这样,实现它的最佳方式是什么? 谢谢, 最佳答案 网上有很多关于此
我开始使用 Retrofit 2。我发现当我有一个新的 Activity 或 fragment 时,我的 PHP session ID 发生了变化。如何保持同一个 session ? 此外,我想在每个
我的 Symfony2 应用程序在我登录时替换了我的 PHPSESSID cookie。这是预期的行为吗?这对我来说毫无意义……为什么不保留相同的 PHPSESSID? 这里有更多细节。 要登录到我的
有关 PHPSESSID cookie 命名的最佳做法是什么? Symfony2 允许您通过配置更改它,您也可以在 php.ini 的 session.name 中更改它。 你为什么要这么做? 最佳答
我已经在这里工作了一天,但似乎没有任何效果。我想做的是:更改 session cookie PHPSESSID 的到期时间,选中特定复选框时,我该怎么做?我试过: ini_set() session_
我是一名优秀的程序员,十分优秀!