我是否需要为 GD 文本函数(imagettftext、imagestring 等)清理用户输入?
Do I need to sanitize user input for GD text functions (imagettftext, imagestring etc.)
我正在开发一个允许用户向图像添加文本的网站。想想模因生成器之类的东西。我想允许几乎所有文本,包括代码、HTML 等
考虑到允许的 "output" GD 文本函数基本上是任何符合 UTF-8 标准的东西,我需要做什么来清理用户输入?特别是考虑到我想保持代码、HTML 等完整无缺。
举个例子:
$userText = $_POST['foo'];
imagettftext($image, 12, 0, 0, 0, $color, $font, $userText);
可以吗?
编辑:有人将我链接到 Secure User Image Upload Capabilities in PHP - 我不是在问如何上传图片 - 我是在问 if/how much/what 清理和/或验证我需要用户输入对于 GD 文本函数。
不,不需要转义或任何东西。
你只需要在新的上下文中使用它时转义一些东西,在那里有可能混淆 data 和 command .在这种情况下,文本数据只是文本数据,它仍然是文本数据。您无需对其进行任何操作。
请记住,用户可能能够使用字体中的任何字形生成图像,all the fun of unicode to go with it。如果文本出现在不同的方向和顶部对您的应用程序不利……您可能需要对此采取一些措施。但这与GD本身无关
我正在开发一个允许用户向图像添加文本的网站。想想模因生成器之类的东西。我想允许几乎所有文本,包括代码、HTML 等
考虑到允许的 "output" GD 文本函数基本上是任何符合 UTF-8 标准的东西,我需要做什么来清理用户输入?特别是考虑到我想保持代码、HTML 等完整无缺。
举个例子:
$userText = $_POST['foo'];
imagettftext($image, 12, 0, 0, 0, $color, $font, $userText);
可以吗?
编辑:有人将我链接到 Secure User Image Upload Capabilities in PHP - 我不是在问如何上传图片 - 我是在问 if/how much/what 清理和/或验证我需要用户输入对于 GD 文本函数。
不,不需要转义或任何东西。
你只需要在新的上下文中使用它时转义一些东西,在那里有可能混淆 data 和 command .在这种情况下,文本数据只是文本数据,它仍然是文本数据。您无需对其进行任何操作。
请记住,用户可能能够使用字体中的任何字形生成图像,all the fun of unicode to go with it。如果文本出现在不同的方向和顶部对您的应用程序不利……您可能需要对此采取一些措施。但这与GD本身无关