php - 在 php 中获取 url 内容的安全性

标签 php security url curl fetch

我担心在 PHP 中从未知 url 获取内容的安全性。

我们基本上会使用 cURL 从用户提供的 url 中获取 html 内容并查找 Open Graph 元标记,以将链接显示为内容卡。

因为url是用户提供的,所以担心在这个过程中有可能获取到恶意代码。

我还有一个问题:curl_exec 实际上是将整个文件下载到服务器吗?如果是,那么使用 curl 时是否可能下载病毒或恶意软件?

最佳答案

使用 cURL 类似于使用 fopen()fread() 从文件中获取内容。 安全与否,取决于您对获取的内容执行的操作。

根据您的描述,您的服务器作为某种中介从获取的 HTML 内容中提取特定的子内容。 即使获取的内容包含恶意代码,您的服务器也不会执行它,因此不会对您的服务器造成伤害。

此外,因为您的服务器只提取特定的子内容(如您所说,Open Graph 元标记), 其他所有不是您在获取的内容中查找的内容都将被忽略, 这意味着您的用户会自动受到保护。

因此,在我看来,没有必要担心。 当然,这依赖于内容提取过程是可靠的假设。 应该有人看一下并确认一下。

does curl_exec actually download the full file to the server?

这取决于您所说的“完整文件”是什么意思。 如果您的意思是“整个 HTML 内容”,那么可以。 如果您的意思是“包括 Feed HTML 内容可能引用的所有 CSS 和 JS 文件”,则否。

is it possible that viruses or malware be downloaded when using curl?

答案是肯定的。 获取的 HTML 内容可能包含恶意代码,但是,如果您不执行它,则不会对您造成伤害。

同样,我假设您的内容提取过程是合理的。

关于php - 在 php 中获取 url 内容的安全性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41109871/

相关文章:

php - mysql datetime如何获取按间隔日、周、月分组的数据

javascript - 如何在我的 javascripts 中找到站点基本 URL?

javascript - Nodejs : make a GET request with users parameters

java - URL缩短算法

php mysql 查询多个表

PHP preg_match_all 导致 Apache 段错误

javascript - 使用javascript自动刷新div

security - 在 HEADER 或 URL 中传递 API key ?

java - 在 Java 中反序列化不可信数据的安全影响是什么?

php - 如何防止 PHP 中的 SQL 注入(inject)?