我包含一个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参数 - 完全由用户控制。我想知道这个函数是否有任何输入会导致不良行为,例如获取除所需页面之外的其他页面的内容。
提前致谢。
答案 0 :(得分:1)
如果$ serial变量总是为数字,则可以在值周围应用intval()以确保该值始终为数字,并且不包含路径遍历/ RFC等的其他非数字数据。
E.G。
file_get_contents("http://example.com/page.php?somevar=".intval($serial)."&check=1");
另外,如果您还需要字母字符,也可以使用preg_replace去除不需要的字符。