Javascript 在我的社交网络中实施反CSRF

Javascript 在我的社交网络中实施反CSRF,javascript,php,csrf,Javascript,Php,Csrf,我开发了一个视频游戏社交网络,并拥有一个基于用户id作为密钥的csrf安全系统 由于这不安全,我需要知道如何在始终发送所有POST请求的令牌字段中实现所有POST请求 有什么办法可以实现这一点吗?也许用javascript 非常感谢大家:)在下面这样的程序中使用$\u SESSION将是一个开始获取用于代替发布,仅用于说明目的 <?php session_start(); if( ! isset($_GET['submit']) ) { $_SESSION['crsf_token']

我开发了一个视频游戏社交网络,并拥有一个基于用户id作为密钥的csrf安全系统

由于这不安全,我需要知道如何在始终发送所有POST请求的令牌字段中实现所有POST请求

有什么办法可以实现这一点吗?也许用javascript


非常感谢大家:)

在下面这样的程序中使用
$\u SESSION
将是一个开始<代码>获取用于代替
发布
,仅用于说明目的

<?php
session_start();
if( ! isset($_GET['submit']) ) {
  $_SESSION['crsf_token'] = md5(rand());
  echo 'token set';
} else {
  printf("post: %s - session: %s<br/>", $_GET['token'], $_SESSION['crsf_token']);

  if( $_GET['token'] !== $_SESSION['crsf_token'] ) {
    unset($_SESSION['crsf_token']);
    echo 'CSRF!';
  } else {
    unset($_SESSION['crsf_token']);
    echo 'Not CSRF.';
  }
}
?>
<form action="" method="GET">
  <input type="hidden" name="token" value="<? echo $_SESSION['crsf_token']; ?>" />
  <input type="submit" name="submit">
</form>


我发现这是一门很好的CI课程:

此库钩住输出中的所有表单并插入一个隐藏字段

我使用这个函数在所有ajax请求中钩住这个字段

$(文档).ajaxSend(函数(e、xhr、选项){ var csrf_token=$(“meta[name=csrf token]”)attr(“content”); options.data=options.data+“&”+$(“meta[name=csrf name]”)attr(“content”)+“=”+csrf_标记;
});

您确定要实施CSRF吗?通常人们会试图阻止它,而那些实现它的人通常会悄悄地做…如果你没有任何XSS问题,只使用POST就足够了。Jajaja,很抱歉我的标题xD。我对我的请求使用POST,但将get查询转换为POST的exist服务有许多表单。有一种方法可以在所有表单和ajax请求中包含令牌字段?这完全取决于您先前存在的代码是如何编写的。这是ajax调用方法的一个示例:对于简单的POST方法,我使用一种常见的表单