0

我有一个关于路线和安全的问题。

我需要保护公共 html 文件夹中的文件。如果用户尝试访问我项目中的任何路线,我会进行一些处理来检查用户是否已登录并将他重定向到正确的路线。

我目前不能做的是保护对与 www.xpto.com.br/file.html 相同的 html 公用文件夹中的文件的访问,如果用户未登录该页面则向用户展示。

有什么方法可以检查用户是否已登录,但不在 html 文件中?

先感谢您!

4

1 回答 1

1

如果您在 public_html 区域中有文件 - 那么保护它们并限制它们的访问是非常困难的。

最好的选择是将文件隐藏在 public_html 之外的安全目录中 - 并在确认用户可以访问特定文件后使用 php readfile()函数将文件“提供”给用户。

像这样的东西可以作为一个例子:

function user_file($file_name = "")
{
    if ($file_name)
    {
         // Ensure no funny business names to prevent directory transversal etc.
         $file_name = str_replace ('..', '', $file_name);
         $file_name = str_replace ('/', '', $file_name);

         // now do the logic to check user is logged in
         if (Auth::check())
         {
                // Serve file via readfile() - we hard code the user_ID - so they
                // can only get to their own images
               readfile('../your_app/samples/'.Auth::user()->id.'/'.$file);
         }
    }
}
于 2013-09-02T09:22:28.977 回答