我正在构建一个允许仅通过域名访问的API(PHP),我应该如何检查JSONP请求源?是否有可以实现的安全层? (我目前不使用密钥*)
* = 我希望用户只添加脚本标签,我不希望他们必须插入密钥并搞砸 - 如果您有任何想法让这种情况发生并确保安全,我会很高兴听到它。
答案 0 :(得分:1)
没有安全的方法可以做到这一点,起源可能是欺骗性的......
答案 1 :(得分:1)
你要获得的最好的是:
如果referer
标题丢失或设置为白名单中包含域名的网址,则接受请求。
这将阻止人们在HTTP站点上有效使用API客户端。
一些(相对较少数量)用户将禁用引用者。他们将能够在任何使用它的网站上使用API(但由于它们是少数,因此大多数网站都不希望依赖于此,因为它只会破坏大多数用户)。
它不会阻止人们运行HTTPS网站并使用API - 但他们的用户会收到有关安全和不安全内容混合的警告,因此这也是一个没有吸引力的选择。
这不会阻止人们点击您的API服务器端,但您可以通过基于IP的速率限制来解决这个问题。