在使用curl获取文件名之前,是否需要清理$ _POST中的文件名?

时间:2012-07-28 16:30:45

标签: php security curl

var只是完整文件规范的文件名部分。

例如:

$file = $_POST['name'];
curl_exec("https:/example.com/some_api/".$file.".json");

顺便提一下,所有有效请求都将从一个域发布。

2 个答案:

答案 0 :(得分:3)

您不需要进行清理(安全性),因为这可能会导致安全问题(curl可能已经处理过类似的问题),但您可能需要urlencode才能使其正常工作。另一方面,您可能需要 urlencode,但由于_POST参数自动为urldecode,因此需要进行初始双重编码。< / p>

顺便说一句,这是错误的。您需要在curl_exec资源上curl,而不是网址。你想要curl_exec(curl_init($url))(但你可能需要设置选项和类似的东西)。

答案 1 :(得分:0)

出于安全考虑,您可能需要urlencode()

$file = urlencode($_POST['name']); 

这样,如果有人尝试了一些奇特的东西,它会更安全。