Php 如果csrf令牌被放置在隐藏输入中,则isn';恶意网站不可能使用CURL吗

Php 如果csrf令牌被放置在隐藏输入中,则isn';恶意网站不可能使用CURL吗,php,Php,然后从源代码中删除标记以用于恶意POST请求 例如,网站放置了一个隐藏的输入,如下所示: <input type="hidden" value="{session token here}" name="token"> 然后,合法网站将检查代码: <?php if(Request::post('token') != Session::get('token'): //generate new token, display errors etc endif;

然后从源代码中删除标记以用于恶意POST请求

例如,网站放置了一个隐藏的输入,如下所示:

<input type="hidden" value="{session token here}" name="token">

然后,合法网站将检查代码:

<?php 
  if(Request::post('token') != Session::get('token'):
     //generate new token, display errors etc
  endif;
?>
CSRF(“跨站点请求伪造”)保护令牌必须仅对特定帐户(或者更好的是,特定会话)有效。想要使用
curl
或类似工具发现受害者的CSRF保护的攻击者需要知道受害者的会话令牌。(当然,如果他们有会话令牌,他们可以直接发出请求,而不必麻烦跨站点发送请求。)

CSRF是一种攻击,我在用户会话中伪造请求,使用我的站点告诉用户的浏览器向您的站点发送请求(当然,该站点托管在完全不同的服务器和域名上,因此是“跨站点”)。它可以工作,即使我(攻击者)不知道受害者的会话令牌,因为受害者的浏览器会自动将所有cookie(针对您的站点)以及任何请求发送到您的站点,即使请求是因为我的站点内容而发出的


不过,我从没见过那些饼干;它们直接从受害者的浏览器进入你的服务器,而我的完全不在循环中。由于同源策略,我也无法使用JavaScript或类似的语言获取它们。由于我没有会话cookie,因此无法将其添加到
curl
。否则,我无法请求对受害者会话有效的CSRF保护令牌,因此如果您的服务器正确使用CSRF保护,它将不信任伪造的请求。

是的,它们可以。这就是目标屏幕清理器所做的。然而,这与CSRF无关,CSRF是关于浏览器的驱动请求伪造。我自己并没有提出这个问题的名声,但为了记录在案,这个问题最好放在security.stackexchange.com上。