【问题标题】:How to restrict the response of a jQuery.getJSON() only to certain domains?如何将 jQuery.getJSON() 的响应仅限于某些域?
【发布时间】:2013-04-07 06:19:36
【问题描述】:

我在 clientDomain.com/show.php 页面中有一个 jQuery 脚本,它显示了使用 jQuery.getJSON() 从 serverDomain.com/echo.php 页面加载的一些数据。我希望只有允许的域才能显示数据,因为我不希望未经授权的人在未经我许可的情况下将脚本安装在他们自己的网站上。有没有办法将 jQuery.getJSON() 的响应限制在某些域?该解决方案还应防止客户端使用 iframe。总之,只有当有人直接访问 serverDomain.com/echo.php 页面或允许的客户端域之一时,才能看到数据。提前感谢您的支持!

我的请求/响应脚本与jQuery.getJSON() | jQuery API Documentation 中的第一个示例类似

我只能编写客户端 jQuery 脚本(将分配到允许的域)和 serverDomain.com/echo.php 页面(这是我的财产)。

【问题讨论】:

    标签: php jquery getjson


    【解决方案1】:

    不要那样做。使用定期更新的身份验证令牌。任何人都可以伪造 HTTP 引荐来源网址。

    这是一个很好的关于 SO 的答案,它涵盖了 resful api 身份验证:REST API Token-based Authentication

    【讨论】:

    • 我只能编写客户端 jQuery 脚本(将分配到允许的域)和 serverDomain.com/echo.php 页面(这是我的财产)。
    • 好的,那么只需创建一个简单的已批准域数组,如果 document.domain 不在数组中,则终止脚本。任何知道如何并且想要绕过的人都很容易绕过,但对于 1 级威慑来说,这很好。
    • 您认为使用此经批准的域数组还是使用此处解释的 HTTP 引荐来源网址更好:stackoverflow.com/questions/11022275/…
    • 选择你的口味。绕过任何一个都需要付出同样多的努力。对于这样的事情,我的理念是,如果没有明确的选择是将代码放在服务器上还是客户端上,那就把它放在客户端上。
    猜你喜欢
    • 2021-02-11
    • 1970-01-01
    • 1970-01-01
    • 2017-11-04
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-01-01
    相关资源
    最近更新 更多