虽然 php 框架都有唯一的入口,但是正常情况下的文件是暴露的。
比如大名鼎鼎的 wordpress 系统,你想知道一个网站到底是不是 wordpress 搭建,试试访问:
站点/wp-includes/
如果返回 403 ,则说明存在该目录,那么它肯定就是 wordpress 搭建的。
尽管从外表看不出来,但是它的文件并没有隐藏,所以容易被发现端倪。
或者说,一些指定的php文件,黑客不通过 index.php 路由,而是直接访问这些php文件,或者 html 模板等,这些信息不应该单独被访问到,但是又确实暴露了。
因此,一些成熟的框架,会使用 public 目录,只暴露该目录,其他目录是隐藏的,从而减少潜在的隐患,比如 thinkphp,laveral。
从安全的角度来看,仅暴露public目录,或许是更好的选择,除了历史遗留原因,基本上现在的框架都采用public目录的方式。