【问题标题】:How to make sure requests are from my website?如何确保请求来自我的网站?
【发布时间】:2012-09-20 04:33:23
【问题描述】:

一些聪明的人正在使用我的以 api 为中心的网络应用程序来克隆我的服务并使其看起来像他们自己的。有没有办法确保所有 ajax 请求都来自/来自我的网站?

当然我可以使用引荐来源标题,但他们很容易伪造它。

【问题讨论】:

标签: javascript jquery


【解决方案1】:

在客户端访问您的站点时,在它发送任何 Ajax 请求之前,在客户端上设置一个 cookie。

然后在提供 Ajax 时验证 cookie。

或者,您也可以仅将 Ajax 请求设为 POST。这样他们就受到同源政策的约束。

但它会打破整个宁静的意识形态。

http://en.wikipedia.org/wiki/Same_origin_policy

【讨论】:

  • security > 意识形态,尽管为此目的的 POST 也让我感到不安。
  • 我猜 jQuery 的 JSONP 将解决这个 same-origin 限制并像往常一样继续获取数据。
  • 是否可以拒绝JSONP 请求?
  • 恐怕不行。这里建议的第一个选项应该可以工作(设置/验证)cookie。
  • @Hermione 使用第一种方法(Cookie)不会受到 JSONP 漏洞的影响。
猜你喜欢
  • 2010-12-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-09-08
相关资源
最近更新 更多