laravel - 保护 Responsive FileManager 不被直接访问

标签 laravel nginx tinymce responsive-filemanager

我正在使用响应式 FileManager 9.14.0 以及在 Nginx 1.16.1 上运行的 TinyMCE 5.0.16 和 Laravel 6

我有以下文件夹结构:

| public
|    |- uploads
|    |- thumbs
|    |- filemanager
|    |- js
|    |   |- tinymce
|    |   |   |- plugins
|    |   |   |   |- responsivefilemanager
|    |   |   |   |   |- plugin.min.js

我使用 laravel 身份验证来保护“创建”页面,用户可以在其中使用 tinyMCE 添加文本并使用 RFM 作为 tyniMCE 插件上传图像。

但如果使用以下 URL 可以直接访问 RFM

http://www.myhost.test/filemanager/dialog.php

如何防止这种行为。我希望只能从 tinyMCE 编辑器访问 RFM。

最佳答案

我不熟悉 laravel 但......

在 Responsive File Manager 9.0 中有一个名为 config 的文件夹,其中包含 config.php

| public
|    |- uploads
|    |- thumbs
|    |- filemanager
|    |   |- config
|    |   |   |- config.php
|    |- js
|    |   |- tinymce
|    |   |   |- plugins
|    |   |   |   |- responsivefilemanager
|    |   |   |   |   |- plugin.min.js
  1. 打开 config.php 并更改 define('USE_ACCESS_KEYS', false); // TRUE or FALSE -------- to ------> define('USE_ACCESS_KEYS', true); // TRUE or FALSE

这会强制 Responsive File Manager 使用 Aaccess Key 来防止所有尝试访问您的文件和文件夹。

  1. 在同一文件的第 190 行添加您的用户 auth_key,他们需要为其使用文件管理器。 例如:

    username: jim auth_key: a1s2d3f4g5h6j7k8l9mm
    username: lisa auth_key: zqxwd3f4vrbth6j7btny

所以第 190 行应该重写如下:

'access_keys' => array( "a1s2d3f4g5h6j7k8l9" , "zqxwd3f4vrbth6j7btny"),
  1. 转到您的表单并添加一个按钮/链接以访问响应式文件管理器

    <a href="https://www.example.com/admin/responsive-filemanager/filemanager/dialog.php?akey=<?php echo {{{your authenticated user AUTH_KEY}}}; ?> </a>

如果没有{{{你的认证用户AUTH_KEY}}}有两种方式: 1)) 在您的用户表中添加一列 auth_key 并生成 auth_key ,对于他们想要访问数据库和 config.php 文件中的响应式文件管理器的用户来说,该 auth_key 应该相等。 2)) 使用 username 而不是 auth_key 所以你在第 19 行的配置将是: 'access_keys' => array( "jim", "lisa"),

现在您的响应式文件管理器访问链接将如下所示:

<a href="https://www.example.com/admin/responsive-filemanager/filemanager/dialog.php?akey=jim ></a>

这里的 jim 是静态的,你应该通过调用函数使其动态化以返回经过身份验证的用户 USERNAME 并将其放在链接中的 &akey= 之后

现在,如果在 access_key 数组中找到链接中的键值,响应式文件管理器页面将正常工作,否则它会显示拒绝访问!!!

关于laravel - 保护 Responsive FileManager 不被直接访问,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58628171/

相关文章:

php - 如何通过直接查询在 laravel 中使用 pagination()

Laravel 5 CORS 中间件不适用于路由组

php - 分享 Nginx 服务器配置

ubuntu - Nginx 在配置中找不到时重定向到第一个按字母顺序排列的站点

javascript - 如何防止 TinyMCE 5 删除\r\n

Laravel 混合 : These dependencies were not found:

laravel - 如何将 Laravel 从 5.7 升级到 5.8

nginx - 重定向到 Nginx 列表中的随机条目

javascript - 如何在 TinyMCE 4.0.10 版本中使用 importcss 插件? (无法加载 content_css 并查看样式下拉列表)

jquery - 将 jQuery Validate 插件与 TinyMCE 编辑器结合使用