在Laravel

时间:2015-12-02 04:13:13

标签: laravel-5 web-crawler file-security

我有一个Laravel 5项目,我在其中以中Blob格式上传数据库中的文件。

但是在数据库中上传文件需要一些额外的时间来执行。

在数据库中上传文件是一种安全的方法,可以保护文件免受抓取工具或某些机器人的攻击。<​​/ p>

我尝试将文件上传到Public文件夹。但抓取工具可以打开这些文件。

有没有办法在文件系统中上传文件?

因此Crawlers无法打开这些文件。

我希望这些文件安全

3 个答案:

答案 0 :(得分:1)

您可以将它们上传到公共范围之外。例如,storage/文件夹是个好地方。此外,您可以使用file system manager抓取它们。看看:

$image = \Storage::get('file.jpg');

修改

正确的laravel安装只允许通过Web浏览器访问public/的内容。如果storage/resources/等其他目录也是公开的,那么您的安装确实不正确。

说,一旦你上传storage/文件夹中的文件,除了使用\Storage外观之外,没有人可以访问它们。当您调用示例\Storage::get('file.jpg');时,它会返回一个位流,您可以将它们分配到临时文件夹中,然后将其显示在Web侧。请求完成后,图像将再次从公共域中消失。

答案 1 :(得分:0)

无需更改目录,这可以通过两种方式实现

LazyOne Answer using .htaccess

Using robots.txt

我建议同时实施.htaccess和robots.txt,因为一些廉价的抓取工具会忽略robots.txt,但是他们无法忽略.htaccess

答案 2 :(得分:0)

您可以按照此方法

image-accessibility-for-authenticated-users-only

因为这只允许授权用户查看图像