javascript - 阻止访问向特殊脚本发送请求

标签 javascript php token

我编写了一个简单的 php 脚本,可以计算其他货币的等额货币(例如 BTC->DOGE),并且由于价格变化,我必须动态更新它(例如每 30 秒),所以我使用了 javascript使用计时器定期向 php 脚本发送 ajax 查询并获取结果...

但是由于管理服务器负载和带宽的使用,我希望其他人无法使用我的脚本并阻止他们请求运行我的脚本,并且只有我的站点可以运行它。我的问题是我如何实现它?

我读到过在表单中​​使用类似 token 之类的东西,并在 session 中设置它,并且每次在页面创建时都会生成 token ......但我不知道如何在javascript中实现它?

并且还在 $_HEADER 中使用检查 ORIGIN ...但我听说(我不知道是否正确) header 中的所有内容都不可靠并且可能是假的

请帮忙

谢谢大家

最佳答案

我明白你在问什么,简而言之;这实际上是不可能的,因为 HTTP 就是这样设计的。但您可以减轻试图这样做的糟糕尝试;但并不能完全阻止它。

一个选项是检查 HTTP header 以验证请求是否来自您的网站。

if ($_SERVER['REQUEST_METHOD'] === 'OPTIONS') {
    http_response_code(403);
    exit;
}
if (strpos($_SERVER['HTTP_REFERER'] ?? '', 'http://example.com') > 0 ) {
    // the request was NOT from my own site (http://example.com)
    http_response_code(403);
    exit;
}

要获得更有保障的区 block ,请实现 MTCaptcha 或 reCAPTCHA。经验丰富的黑客可以轻松绕过上述解决方案。

关于javascript - 阻止访问向特殊脚本发送请求,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60478742/

相关文章:

javascript - 将脚本放在正文之后是否有助于页面加载速度?

PHP 数组返回 null

php - 使用 Eloquent 进行一些复杂的查询

javascript - 多个弹出窗口 - 超出最大调用堆栈大小 - jQuery 错误

javascript - 如何通过编辑从嵌入中删除字段?

javascript - 如何获得Jison代币?

api - 从 WSO2 Api Manager 检索用户访问 token

ruby-on-rails - devise_token_auth - 是否可以验证用户!不会使过滤器链失败?

javascript - Bootstrap - 日期时间选择器添加像今天这样的自定义按钮

php - 通过 PHP 编码执行 Linux-CentOS 命令行