Erd*_*mir 1 php security directory-structure
关于目录结构的文档很多,但大部分都是关于MVC目录结构的。但是如果我们不想使用任何框架或 MVC 怎么办?
我真的很困惑。
第一个选项:
/public_html
/css
/images
/libs
index.php
profile.php
search.php
Run Code Online (Sandbox Code Playgroud)
第二种选择:我仍然可以使用 ww.mysite.com/index.php, ww.mysite.com/profile.php .. 链接结构
/libs
/public_html
/css
/images
index.php
profile.php
search.php
Run Code Online (Sandbox Code Playgroud)
第三个选项:我的链接是这样的:ww.mysite.com/index.php?view=search
/view
-profile.php
-search.php
/libs
/public_html
/css
/images
index.php
Run Code Online (Sandbox Code Playgroud)
哪一个是最佳实践?目录结构与安全性有关吗?谢谢大家的帮助!
我认为第三个选项是最好的,但我会进一步扩展(见下文)。如果可以直接从 Internet 访问文件,则它可能会在出现问题时提供信息。
在第一个和第二个选项中,如果 mime 类型设置错误或由于某些其他原因 PHP 不解析文件,它通常会显示为text/html纯文本或纯文本。在第一个和第二个选项中,这意味着有人可能会获取数据库登录等信息。
我通常将其设置为类似于选项三,但将所有内容传递给另一个索引文件,并且不要使 URI 与文件匹配,这view=search表示search.php从view文件夹中获取文件。我不知道这个设置,但这是个人品味。
我的设置看起来像这样
/private
/view
-profile.php
-search.php
/libs
-index.php
/public_html
/css
/images
-index.php
Run Code Online (Sandbox Code Playgroud)
public_html/index.php如果它以纯文本形式传递,只需将其交给私有含义,它不会提供任何信息,除了您的文件存储在另一个目录中。所有处理由private/index.php
<?php
require_once('../private/index.php');
Run Code Online (Sandbox Code Playgroud)
即使存在配置错误,我也从未发现此设置存在严重问题。
| 归档时间: |
|
| 查看次数: |
1081 次 |
| 最近记录: |