PHP的file_get_contents是否可安全调用第三方API?

加布里埃尔·比安科尼(Gabriel Bianconi)

我需要使用PHP(file_get_contents调用第三方API ,对json响应(json_decode)进行解码,然后将结果插入网页中。

我想验证所有这些步骤都不会允许受损的API服务器在我的服务器上执行任意代码。

对于此问题,可以返回恶意HTML / JS是可以的-我的问题严格是关于在服务器端执行任意PHP代码或系统命令。

谢谢你。

编辑:这是一个代码示例。

<?php

$API_URL = 'https://HARDCODED.URL/SOMETHING';

$response = file_get_contents($API_URL);
$content = json_decode($response);

$server_address = $content->{'server_address'};

echo $server_address;

?>
猴子宙斯

根据OP的要求:

如何转换file_get_contents()为curl请求:

<?php

// init the CURL
$ch = curl_init();

curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); // return response as a string
curl_setopt($ch, CURLOPT_URL, 'https://HARDCODED.URL/SOMETHING'); // the URL
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, TRUE); // verify SSL info

// You MIGHT need this step or else the CURLOPT_SSL_VERIFYPEER will cause issues
//
// Download https://curl.haxx.se/ca/cacert.pem and save as cacert.pem
//
// curl_setopt($ch, CURLOPT_CAINFO, '/path/to/cacert.pem');
//
// I say MIGHT because your webhost might have already set CURLOPT_CAINFO in the php.ini

// Get JSON
$result = curl_exec($ch);

// Basic error handling
if(curl_getinfo($ch, CURLINFO_HTTP_CODE) === 200)
{
    $content = json_decode($result, TRUE);
}
else
{
    echo 'Something went wrong :( please try again later.';
}

// Close connection
curl_close($ch);

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

如何通过Firebase调用第三方API?

来自分类Dev

调用第三方API时处理CORS

来自分类Dev

为 React Native UI 使用第三方库是否安全且良好?

来自分类Dev

第三方引用的模棱两可的调用

来自分类Dev

Java-访问安全的HTTPS第三方API

来自分类Dev

针对第三方HTTP调用优化Celery

来自分类Dev

如何从Elixir调用第三方Erlang模块?

来自分类Dev

在React中调用第三方Lib函数

来自分类Dev

是否有第三方angulardart模块列表?

来自分类Dev

使用第三方 CSS 是否危险?

来自分类Dev

将第三方API调用转换为异步

来自分类Dev

在移动应用程序上保护第三方API调用

来自分类Dev

测试节点表示端点和存根第三方api调用

来自分类Dev

NodeJS-来自app.js的第三方Api调用

来自分类Dev

测试节点表示端点和存根第三方api调用

来自分类Dev

在Java中使用curl调用第三方REST API

来自分类Dev

React:使用 Ajax 调用第三方 API (Behance)

来自分类Dev

通过 Firebase Cloud 函数调用第三方 API(使用 Blaze 计划)。反应/还原

来自分类Dev

使用PhpStorm调试对PHP脚本的第三方应用程序调用

来自分类Dev

Smartsheet API是否支持用于第三方身份验证的标准OAuth 2.0?

来自分类Dev

使用Firebase隐藏第三方API密钥

来自分类Dev

Blazor WebAssembly第三方api

来自分类Dev

ImageJ:如何使用第三方插件API?

来自分类Dev

没有API的第三方网站抓取

来自分类Dev

与第三方API Flask的全局连接

来自分类Dev

Python / Django中的第三方API集成

来自分类Dev

如何从第三方API保存JSON对象

来自分类Dev

PHP Monkey Patching用于第三方课程

来自分类Dev

在PHP中保护第三方API凭证并包括