Php CURL vs allow_url_fopen哪一种获取图像更安全?
我有一个脚本,用户可以输入一个图像URL(来自另一个网站),然后使用JS裁剪它,并将其保存在我的服务器上 我的问题是。。。从另一台服务器获取图像时,使用CURL或allow_url_fopen(通过file_get_contents())更安全吗?或者是否有首选/更安全的方法 安全性对我来说是一个很大的问题,因为我知道这是一个非常危险的过程-脚本只需要为图像文件工作,如果这有什么不同Php CURL vs allow_url_fopen哪一种获取图像更安全?,php,security,curl,Php,Security,Curl,我有一个脚本,用户可以输入一个图像URL(来自另一个网站),然后使用JS裁剪它,并将其保存在我的服务器上 我的问题是。。。从另一台服务器获取图像时,使用CURL或allow_url_fopen(通过file_get_contents())更安全吗?或者是否有首选/更安全的方法 安全性对我来说是一个很大的问题,因为我知道这是一个非常危险的过程-脚本只需要为图像文件工作,如果这有什么不同 谢谢卷曲通常是一种更安全的方法。您需要做出明确的设计/编码决策,以允许curl的结果直接影响您的程序,而在f*(
谢谢卷曲通常是一种更安全的方法。您需要做出明确的设计/编码决策,以允许curl的结果直接影响您的程序,而在f*()函数中允许url会让
include('http://example.com/really_nasty_remote_takeover.php');
发生时不会出错。下载文件根本不是一个安全问题,无论它是您的服务器还是您自己的计算机,或者您用于下载它的应用程序/代码:)关键在于您是否正在执行文件:D 你所要做的就是确保你不会在文件中执行/包含任何内容。既然你只打算裁剪图像,我认为你很好:)
我建议使用cURL-tho,allow\u-url\u-fopen可能会在代码的其他地方引发安全问题。cURL的错误处理比
file\u-get\u-contents()好得多。
。如果你在意的话,卷曲可能是最好的选择。如果一个简单的“oops,那不行”就足够了,那么,file\u get\u contents()
是一个完全可以接受的快捷方式。首先,如果你想深入讨论安全问题。下载文件实际上是一个安全问题,如果你不知道你在做什么
在某些情况下,您可以覆盖重要文件,甚至覆盖系统文件。在服务器上上载脚本等,以便通过web服务器执行它们也是一个问题
所以这里不像人们指出的那样有阳光和彩虹
回到您的问题,allow_url_fopen是一个配置指令。我想你是说。两者都可以。正如其他人指出的,Curl有点冗长,而且速度更快
如果最终使用了file_get_contents(),请确保不要将未过滤的变量作为参数。cURL有更多选项和可能性 两者都同样安全(如果误用,则不安全) 使用cURL更明智,因为您将通过更强大的功能提升您的体验,这可能在未来的项目中为您服务 此外,如果这个项目以后需要新的功能,如果文件内容不够,您就不必用cURL重写所有内容 此线程的答案显示了一个很好的cURL函数:
include()
由更严格的allow\u url\u include
控制,而不是allow\u url\u fopen
。使用file\u get\u contents()
是无害的。