我正在开发一个从文本生成音频(TTS)并提供速度/音高控制的播放器项目。我的问题与请求安全有关。用户在我的网站注册时获得 widget_id,他在自己的网站中放置一些 js,并且 api 在他的网站上工作。当用户点击发送按钮时,api.js 文件会将 widget_id 数据作为 ajax POST 请求发送到我的网站。然后在我的网站上,我获取了 widget_id 和引用源(referer):
$referer = isset($_SERVER["HTTP_REFERER"]) ? $_SERVER["HTTP_REFERER"] : '';
我从数据库中获取与 widget_id 相关的站点值,并将其与 $referer 进行比较。
... if($website_url == $referer) { $website_checked = true; } ...
所以我的问题是: 攻击者是否可以使用一些库(例如 Curl)更改 $_SERVER["HTTP_REFERER"] 的值,从而破坏我的安全性?
例如,如果他使用 curl 和以下代码:
curl_setopt($ch, CURLOPT_REFERER, 'https://anysite.io/');
谢谢。
因此,我更新了问题,因为我意识到这是不可信任的。所以请给出私有身份验证算法的基本步骤...
更新3: 我开始设置赏金,因为我需要了解在我的场景中私有身份验证算法的运作方式。
我从数据库中获取与 widget_id 相关的站点值,并将其与 $referer 进行比较。
... if($website_url == $referer) { $website_checked = true; } ...
所以我的问题是: 攻击者是否可以使用一些库(例如 Curl)更改 $_SERVER["HTTP_REFERER"] 的值,从而破坏我的安全性?
例如,如果他使用 curl 和以下代码:
curl_setopt($ch, CURLOPT_REFERER, 'https://anysite.io/');
谢谢。
因此,我更新了问题,因为我意识到这是不可信任的。所以请给出私有身份验证算法的基本步骤...
更新3: 我开始设置赏金,因为我需要了解在我的场景中私有身份验证算法的运作方式。