Laravel 4路线和安全问题

时间:2013-09-02 04:58:18

标签: security laravel laravel-4 laravel-routing

我对路线和安全性有疑问。

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

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

有没有办法检查用户是否已登录,但不在html文件中?

提前谢谢!

1 个答案:

答案 0 :(得分: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);
         }
    }
}