我担心在 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/