我正在使用响应式 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
- 打开 config.php 并更改
define('USE_ACCESS_KEYS', false); // TRUE or FALSE -------- to ------> define('USE_ACCESS_KEYS', true); // TRUE or FALSE
这会强制 Responsive File Manager 使用 Aaccess Key 来防止所有尝试访问您的文件和文件夹。
在同一文件的第 190 行添加您的用户 auth_key,他们需要为其使用文件管理器。 例如:
username: jim auth_key: a1s2d3f4g5h6j7k8l9mm
username: lisa auth_key: zqxwd3f4vrbth6j7btny
所以第 190 行应该重写如下:
'access_keys' => array( "a1s2d3f4g5h6j7k8l9" , "zqxwd3f4vrbth6j7btny"),
转到您的表单并添加一个按钮/链接以访问响应式文件管理器
<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/