Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/ajax/6.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在高缓存环境中在Ajax中传递安全令牌_Ajax_Security_Access Token - Fatal编程技术网

在高缓存环境中在Ajax中传递安全令牌

在高缓存环境中在Ajax中传递安全令牌,ajax,security,access-token,Ajax,Security,Access Token,大家好 我正试图在一个高速缓存的环境中思考ajax进程的安全性问题,我可以提供一些建议。我的情况是: 该站点的用户未登录 网站页面高度缓存(通过akamai) 我有一个服务API,可以通过AJAX从我的域中的页面访问它 我需要保护API不被我的域外使用 我可以检查报头中传入的“主机”,查看ajax请求是否来自我的域,但这似乎不安全,因为这样的报头可能会被欺骗。此外,在我看来,通常的令牌传递方案对我不起作用,因为我的页面是缓存的,所以我没有机会注入用户/请求特有的令牌(例如,如此处所述:)。显

大家好

我正试图在一个高速缓存的环境中思考ajax进程的安全性问题,我可以提供一些建议。我的情况是:

  • 该站点的用户未登录
  • 网站页面高度缓存(通过akamai)
  • 我有一个服务API,可以通过AJAX从我的域中的页面访问它
  • 我需要保护API不被我的域外使用

我可以检查报头中传入的“主机”,查看ajax请求是否来自我的域,但这似乎不安全,因为这样的报头可能会被欺骗。此外,在我看来,通常的令牌传递方案对我不起作用,因为我的页面是缓存的,所以我没有机会注入用户/请求特有的令牌(例如,如此处所述:)。显然,在页面加载后通过ajax发出令牌请求是不安全的,所以我不知道如何实现这一点。我想我可以生成一个共享使用令牌,该令牌随页面一起加载,其生存期是我最大页面缓存生存期的两倍,但似乎一定有更好的方法

你想完成什么?您是否在试图防止跨站点请求伪造或有人\某事使用您的API而不是您提供给用户的javascript

前者通过存储在页面源中的令牌来实现。通过在源代码中使用令牌(或一些创建令牌的代码),可以使执行XSRF攻击变得困难。不幸的是,除非您可以在源代码中获得每个用户/请求的唯一数据,否则总有人可以获取您的源代码并对令牌进行反向工程。然后他们可以伪造请求。一般的规则是,除非用户登录,否则不要担心,因为攻击者可以自己进入该页面

无论如何,后者(防止未经授权的使用)是不可能的。攻击者总是可以创建一个帐户,删除她需要的令牌/密钥/凭据,然后在其服务器上使用一些API