Javascript 隐藏api密钥,php

Javascript 隐藏api密钥,php,javascript,php,api-key,Javascript,Php,Api Key,我正试图隐藏我的api密钥,因此由于配额原因无法访问。api只检索配方数据,因此没有信用卡详细信息等 在过去的几天里,我整日整夜都在做这件事,因为我对php还很陌生,但stackoverflow总的来说是说需要某种代理。 这是我创建的,我想知道它是否足够安全 App.js // I make an axios post request to script.php, passing along a 'searchfield' value. Lets say its "apples" script

我正试图隐藏我的api密钥,因此由于配额原因无法访问。api只检索配方数据,因此没有信用卡详细信息等

在过去的几天里,我整日整夜都在做这件事,因为我对php还很陌生,但stackoverflow总的来说是说需要某种代理。 这是我创建的,我想知道它是否足够安全

App.js
// I make an axios post request to script.php, passing along a 'searchfield' value. Lets say its "apples"

script.php
// receives the 'searchfield' value, then initiates a curl request to the api with my keycode/searchfield etc.
// This returns the response for apples which is an array of objects back to App.js
我的script.php与此类似,我遗漏了什么

$ch = curl_init();
    $url = 'https://fake.com?api_key=1234';
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt($ch, CURLOPT_URL,$url);
    $result=curl_exec($ch);
    curl_close($ch);

因为它是服务器端语言的PHP端,从外部世界看不到它,所以只要有一个用户系统,就可以继续进行安全性方面的工作。如果您不这样做,他们可以通过调用您的文件来滥用此api密钥

因此,离开安全的方式,明智的做法是将api密钥存储为常量,这样在将来的请求中,您就不必再次键入它,并且如果您请求更改api密钥,您就不必到处更改它


还有一些很好的库用于使用REST API,您可以在web上搜索这些库。

“足够安全”做什么?目前,用户不会看到api密钥,但除非您有登录系统,否则任何人都可以使用script.php。这一点非常不清楚:“我正试图隐藏我的api密钥,因此由于配额原因无法访问。”向谁隐藏它?如果您需要在您的请求中使用它,则无法对目标网站隐藏它。另外,如果您违反了API的条款,那么无论是谁提供了API,这都是一个需要解决的问题,而不是像这样的问题。(你的IP会被屏蔽。)如果你试图对你网站的用户隐藏它,它已经不可见了。我正试图隐藏它,因为我读到的帖子说不要将api存储在客户端,因为它很容易看到。我不希望有人能够抓取我的api密钥,使用它并破坏我的配额。与其为每个请求命中api端点,不如缓存响应。