【发布时间】:2024-11-07 05:45:02
【问题描述】:
使用此代码有什么影响?
<?php
if(file_exists("pages/" . $_GET["page"] . ".php")){
include("pages/" . $_GET["page"] . ".php");
} else{
include("pages/home.php");
}
?>
我已经做到了,如果没有“.php”扩展名,您将无法加载任何内容,所以我认为它使用起来非常安全。如果你使用:
website.com/index.php?page=../index
在 url 中它会创建一个无限循环。据我所知,您无法加载外部 URL。
例子:
website.com/index.php?page=anothersite.com/virus
但我不太确定,有什么建议吗?或者这个可以用吗?
【问题讨论】:
-
您可能应该查看 Apache 的
mod_rewrite(假设您使用的是 Apache)。 -
@Matt Browne,如果他不使用 Apache 怎么办?还有一些其他可用的 Web 服务器比 Apache 好得多。
-
虽然@RomanNewaza 我正在使用apache
-
@RomanNewaza 这就是我说“假设您使用的是 Apache”的原因——这是我做出的一个初步假设,因为它在 PHP 世界中很常见。