php - 对用于安全登录的更高 Web 根访问权限感到困惑

标签 php javascript security authentication

现在要尝试使用安全登录的形式,连接到数据库的 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/

相关文章:

php - Wordpress:wp-cron 不工作并且在日志中没有给出错误

javascript - 使用 Javascript 保存跟踪的 GPS 数据

php - 如何阻止 100,000 多个单独的 IP 地址

c++ - 使用 ReadDirectoryChangesW 是否需要管理员权限?

php - SQL查询根据与用户的接近程度来转换广告

php - strip_tags - 从 <img> 中去除 <a> 标签

php - 如何从 laravel 中的自定义方法获取当前模型

javascript - 由于字体 : helvetica,粗体和普通文本彼此未对齐

javascript - 从 jQuery 对象中移除元素

php - Joomla : Can a super administrator get the ftp password of that site (from configuration file or any other way)?