Cakephp 图像安全
Cakephp Image Security
我有一个允许用户上传图像的 CakePHP 应用程序。我目前使用的是版本 2。
我担心黑客会在图像中嵌入代码,然后在服务器上执行该代码。
有人知道 CakePHP 文档中使用的图像验证方法是否包括对此的安全检查吗?
这里有一个 link 可以更好地解释我的问题。
PHP image upload security check list
提前致谢
您可能需要先详细说明您所关注的情况,例如嵌入在图片中的代码如何在服务器上执行?那会是什么样的代码?服务器/应用程序如何处理这些图像?无论文件内容如何,仅将它们移动到文件系统中肯定不会有任何作用。
CakePHP 不附带任何检查二进制图像数据 integrity/validity 的验证功能。可能与图像相关的验证方法,如 Validation::mimeType()
仅通过 PHP finfo_*
或 mime_content_type
函数进行非常基本的文件头检查。
即使 CakePHP 会验证图像数据结构,人们仍然可以通过元数据等方式嵌入各种内容,因此如果有人设法在正确的上下文中包含图像,则可能会执行嵌入的代码。
如前所述,首先评估威胁,然后确定适当的防御机制。如果您需要比 CakePHP 内置验证提供的更多安全性,那么您可能必须处理图像和 ditch/filter 元数据。然而,即使这可能会被利用,例如正确制作的 PNG IDAT 块甚至可能会在 resizing/resampling:
这样的过程中存活下来
https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/
我有一个允许用户上传图像的 CakePHP 应用程序。我目前使用的是版本 2。
我担心黑客会在图像中嵌入代码,然后在服务器上执行该代码。
有人知道 CakePHP 文档中使用的图像验证方法是否包括对此的安全检查吗?
这里有一个 link 可以更好地解释我的问题。 PHP image upload security check list
提前致谢
您可能需要先详细说明您所关注的情况,例如嵌入在图片中的代码如何在服务器上执行?那会是什么样的代码?服务器/应用程序如何处理这些图像?无论文件内容如何,仅将它们移动到文件系统中肯定不会有任何作用。
CakePHP 不附带任何检查二进制图像数据 integrity/validity 的验证功能。可能与图像相关的验证方法,如 Validation::mimeType()
仅通过 PHP finfo_*
或 mime_content_type
函数进行非常基本的文件头检查。
即使 CakePHP 会验证图像数据结构,人们仍然可以通过元数据等方式嵌入各种内容,因此如果有人设法在正确的上下文中包含图像,则可能会执行嵌入的代码。
如前所述,首先评估威胁,然后确定适当的防御机制。如果您需要比 CakePHP 内置验证提供的更多安全性,那么您可能必须处理图像和 ditch/filter 元数据。然而,即使这可能会被利用,例如正确制作的 PNG IDAT 块甚至可能会在 resizing/resampling:
这样的过程中存活下来https://www.idontplaydarts.com/2012/06/encoding-web-shells-in-png-idat-chunks/