我包含了一个带有file_get_contents()
的远程文件,如下所示:
function checkData($serial) {
file_get_contents("http://example.com/page.php?somevar=".$serial."&check=1");
return $http_response_header;
}
这个远程页面执行一些基本的数据操作,并在数据库中查找序列号(输入经过净化,我正在使用PDO,所以我不必担心SQL注入),然后在响应标头中返回一个值。输入$serial
是一个get参数,因此完全由用户控制。我想知道这个函数是否有任何输入会导致不良行为,例如获取所需页面之外的另一个页面的内容。
提前谢谢。
如果$serial变量始终是数字,则可以在该值周围应用intval(),以确保该值始终是数字并且不包含用于路径遍历/RFC等的其他非数字数据。
例如
file_get_contents("http://example.com/page.php?somevar=".intval($serial)."&check=1");
或者,如果您还需要alpha字符,您可以使用preg_replace来去除不需要的字符。
http://php.net/manual/en/function.preg-replace.php