我有一个PHP的网站,不包括()嵌入内容到模板。要加载的页面在get参数中给出,我将“.php”添加到参数的末尾并包含该页面。我需要做一些安全检查,以避免XSS或其他的东西(不是因为我们没有数据库的MySQL注入)。我想到的是以下内容。
$page = $_GET['page'];
if(!strpos(strtolower($page), 'http') || !strpos($page, '/') ||
!strpos($page, '\\') || !strpos($page, '..')) {
//append ".php" to $page and include the page
有没有其他的事情可以做,以进一步消毒我的输入?
不检查strpos()的结果 - 如果匹配位于字符串的起始位置,它将返回零,该值将计算为false – 2009-10-19 09:24:29
@Tom,该解决方案允许我也避免这种情况,无论如何,谢谢,我会记住你对未来代码的建议。 – 2009-10-19 09:34:04
参见:http://stackoverflow.com/a/15825812/59087 – 2013-04-05 04:28:50