我对路线和安全性有疑问。
我需要保护公共html文件夹中的文件。如果用户尝试访问我项目中的任何路线,我会进行一些处理以检查用户是否记录,并将他重定向到正确的路线。
目前我不能做的是保护对html公共文件夹中文件的访问权限 www.xpto.com.br/file.html如果用户未登录页面,则会向用户展示。
有没有办法检查用户是否已登录,但不在html文件中?
提前谢谢!
答案 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);
}
}
}