现在要尝试使用安全登录的形式,连接到数据库的 php 文件将存储在 Web 根目录 public_html 之上,因此它们不能被公开访问。
我的第一个问题是人们说你不能用 Javascript 调用这个 php 文件。
这是有道理的,因为 Javascript 在客户端运行并且可以公开信息,但这让我对如何安全地调用此 php 文件感到有点困惑。
我是否应该在 Web 根目录下有另一个 php 文件来调用 Web 根目录之上的内容敏感文件?
这是否可以通过“../../some-folder-above-web-root/some-php-above-web-root.php”来实现,如果是这样,那不是揭示了Web 根目录中的 php 文件?或者它的位置不重要,因为人们无法访问它(.. 黑客)。
总而言之,我真的只想知道如何正确、安全地与 Web 根目录之上的脚本进行通信。
最佳答案
是的,你是对的。 Web 根目录下应该有一个 PHP 文件,它将访问 Web 根目录之上的安全 PHP 文件。在 Zend Framework 中,有一个名为 bootstraper 的 index.php 文件,它可以做很多事情,包括:
- 设置错误显示级别
- 设置包含路径
- 定义全局常量
- 阅读配置文件
- 加载库类
- 获取前端 Controller
- 配置数据库连接
- 根据 RESTful url 和 MVC 确定路由
- 设置异常处理
- 调用请求的 Controller
我强烈建议使用 MVC 框架,它们是行业标准,并且具有针对许多常见问题(包括安全登录)的预构建功能。 Zend Framework 实现了访问控制列表样式的安全性,尽管您可以轻松地扮演自己的 Angular 色。其他著名的框架包括 Drupal、Yii、Codeigniter、Symphony、CakePHP 和 Joomla。
其他最佳安全实践是:
- 根据 mimetype 而非文件扩展名或文件类型过滤所有上传的文件
- 根据数据库表列类型和长度过滤所有 POST 和 GET 数据
- 在运行之前清理所有 SQL 字符串
- 更改服务器上的所有默认登录密码,例如:Apache、MySQL、FTP、SSH、SVN 等。
- 了解如何配置 php.ini、httpd.conf 等。
- 禁用任何未在您的框架、PHP、Apache 和 MySQL 中使用的服务、模块和插件
- 模糊你的代码
- 使用单元测试
- 了解一些有关渗透测试的知识
关于php - 对用于安全登录的更高 Web 根访问权限感到困惑,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14219095/