保护正在访问的用户文件,以便只有所有者才能访问?

2023-12-02

我正在用 php 编写一个 Web 应用程序,用户可以在其中上传自己的文件或图像,但如何保护这些文件不被所有者以外的其他人访问。想想 dropbox,保护这些文件的机制是什么,我尝试过搜索,但没有得到任何关于此的信息。任何指向教程的指针或链接都会非常有用。提前致谢。


如果您将图像和文件作为二进制 blob 存储在数据库中,那么只需在从数据库中检索和显示它们之前检查登录用户的权限即可。

如果您将它们存储为常规文件,您需要做的是将它们存储在您网站的文档根目录之上,这样它们就无法在网络上公开访问。然后要检索图像,在从数据库中检查正确的所有权后(我们不知道您的体系结构,因此请替换您存储的内容属于谁),PHP 可以检索文件并将其使用正确的标头发送到浏览器。

例如,要显示图像:

// Check permissions...
// If permissions OK:
$img = file_get_contents("/path/to/image.jpg");

// Send jpeg headers
header("Content-type: image/jpeg");
// Dump out the image data.
echo $img;
exit();

例如,您可以保留一个与用户 ID 匹配的文件名数据库表,以跟踪谁拥有什么。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

保护正在访问的用户文件,以便只有所有者才能访问? 的相关文章

  • 如何将自定义类型数组传递给 Postgres 函数

    我有一个自定义类型 CREATE TYPE mytype as id uuid amount numeric 13 4 我想将它传递给具有以下签名的函数 CREATE FUNCTION myschema myfunction id uuid
  • 重新链接匿名(未链接但打开)文件

    在 Unix 中 可以创建匿名文件的句柄 例如 使用 creat 创建并打开它 然后使用 unlink 删除目录链接 留下一个带有 inode 和存储的文件 但没有可能的方法重新打开它 此类文件通常用作临时文件 通常这就是 tmpfile
  • 使用 PhpStorm 删除 CakePHP 中的插件后出现“成员有私人访问错误”

    从我的 CakePHP 框架中删除插件以及与其关联的所有代码行后 我在以下位置收到错误getInitializer的功能autoload static php in my vendor gt composer folder public s
  • PHP上传文件产生错误代码4。为什么?

    HTML
  • 算法 HmacPBESHA256 不可用

    因此 我编写了一些代码来获取 PEM 通过 bouncycastle 将其添加到 PKCS 密钥库 然后使用 java crypto 将 PKCS 密钥库值导入到 JKS 密钥库中 我发誓昨天我在执行这些步骤后成功通过了单元测试 但是今天早
  • 如何验证使用 php 上传的文件不包含可执行二进制文件?

    使用简单的 Firefox 插件 黑客可以更改他们想要上传的任何文件的 MIME 类型 绕过文件类型检查器 然后 黑客可以使用 GIMP 等程序将 php 脚本嵌入到图像 音频或任何其他文件的二进制数据中 我该如何检查并防止这种情况发生 您
  • 基本表创建 fpdf

    我找不到使用 fpdf 制作表格并从 mysql 数据库获取数据的合适教程 我只是想知道如何创建一个 我在网上尝试示例时遇到了很多错误 例如 我有 名字 中间名 姓氏 年龄 和 电子邮件 列 如何使用 fpdf 创建表格并回显数据库中的条目
  • 访问 public_html 级别之外/以下的文件

    如何通过 url 访问文件 home uzair etc index php 即使我运行域 something com 它显示了 home uzair public html index php 这个文件 任何人请帮助我如何访问放置在 ho
  • PHP:如何防止不必要的换行

    我正在使用 PHP 创建一些基本的 HTML 标签始终相同 但实际链接 标题对应于 PHP 变量 string p a href strong i title i i strong a br echo string fwrite outfi
  • Facebook 中用户的时区是如何编码的

    我需要检查用户的时区 但我找不到它的真正定义 参考API http developers facebook com docs reference api user says 用户的时区与 UTC 的偏移量 现在在维基百科上这些是可能的时区
  • 如何读取 XML 文件并从中获取值以在 PHP 编码的 HTML 页面中显示

    我有一个 XML 文件 其中有一些重复的标签 其中包含不同的值 我需要获取这些值并显示在我的网页中 请帮助我得到这个 如果您使用 PHP5 可以查看 SimpleXML 您可以在这里找到介绍教程 http www w3schools com
  • Opencart最低下单价不包括一类

    我正在使用 opencart 并成功为所有交易添加了最低订单价格 这是我使用的代码 div div div class warning Minimum 10 Euro to checkout div 现在我想从中排除一个类别 以便可以购买该
  • 如何从控制器访问 Zend Framework 应用程序的配置?

    我有一个基于 Zend 框架的应用程序快速开始 http framework zend com docs quickstart setup 我已经让演示工作起来 现在正在实例化一个新的模型类来完成一些实际工作 在我的控制器中 我想将配置参数
  • 使用php将文本文件转换为xml?

    data txt ha15rs 250 home2 gif 2 ha36gs 150 home3 gif 1 ha27se 300 home4 gif 4 ha4678 200 home5 gif 5 我想使用 php 使用 simplex
  • PHP 日志文件颜色

    我正在编写一个 PHP 日志文件类 但我想为写入文件的行添加颜色 我遇到的问题是颜色也会改变终端的颜色 我想要实现的是仅更改写入日志文件的行的颜色 class logClass extends Singleton private funct
  • 你能给我一个会话固定攻击的例子吗?

    我读过有关会话固定的内容 据我了解 它强制用户使用攻击者的会话 它是否正确 你能举个例子来说明这会如何冒犯用户吗 我通常不喜欢发布维基百科的链接 但这里有一个链接维基百科上有很好的解释 http en wikipedia org wiki
  • 图像创建从jpeg() PHP

    我正在使用 imagecreatefromjpeg 函数合并两张图片 现在我面临的问题是 当我使用服务器中的图片时 它工作正常 而当我使用其他网站的图片时 它不起作用 例如 当我使用这个 PHP 文件时http coolfbapps in
  • 如何在服务器上保存用户凭据以在后台运行查询

    背景 我们有一个 ASP NET Silveright Web 应用程序 silverlight客户端显示用户 图形形式的特定数据 它从服务器请求数据 问题 由于服务器必须执行底层数据库查询 获取这些数据的成本很高 因此客户端必须等待 优化
  • php56 - CentOS - Remi 仓库

    我刚刚在测试盒上安装了 php 5 6 正常的 cli php 解释器似乎不存在 gt php v bash php command not found gt php56 v PHP 5 6 13 cli built Sep 3 2015
  • 如何显示 PHP 对象

    我有这样的代码 dataRecord1 client gt GetRecord token table filter echo pre print r dataRecord1 echo pre foreach dataRecord1 gt

随机推荐

  • ajax文件在页面上上传多个输入

    我正在使用 ajaxFileUpload 如下所述 http www asp net ajaxLibrary AjaxControlToolkitSampleSite AjaxFileUpload AjaxFileUpload aspx 它
  • 不同设备的网格数

    我有一个问题 我应该知道数量gridview在为不同设备显示的每一行中 喜欢数量gridview平板电脑 WVGA 手机的每行 因为它们的屏幕宽度不同 是否有代码可以检查这一点 好的 您可以使用以下方式以编程方式设置列数 float sca
  • 什么基于java的CMS可以管理现有页面的内容?

    我们有一个现有的正在运行的java web应用程序 当前页面的内容是静态的 但页面仍然是jsp文件 它们的外观和感觉是专门设计的 我的客户现在想要使用 CMS 来管理新闻 事件等内容的更新 并对 jsp 代码进行最小的更改 我尝试了 ope
  • 带有 Group Unwind 和 Project 的 MongoDb C# 类型聚合

    我有一个这样的集合 id 1 OtherProperties 100 PersonInventory FirstName Joe MiddleName Bob LastName Blogs PersonId 1 id 2 OtherProp
  • UITextview 隐藏光标/更改光标颜色

    在我的应用程序中 在 UITextview 中我想隐藏光标 如果这是不可能的 那么我想改变光标的颜色 我们可以这样做吗 我已经搜索过它 但只得到了 UITextfield 的答案 Thanks 在iOS 7上 您只需将文本视图的tintCo
  • 如何在 PHP 中使用 FTP 从另一台服务器传输文件

    我正在尝试找到一种在服务器之间传输文件的方法 源服务器可以是任何平台 我们甚至可能对它一无所知 除了它支持 FTP 之外 我在 SO 上找到的许多帖子建议使用 scp sftp rsync 或 wget 来实现此目的 鉴于这个 PHP 脚本
  • 如何在 SQL Server 中使用带框架的窗口函数执行 COUNT(DISTINCT)

    搭载这个可爱的问题 可以使用 DISTINCT 进行分区函数 COUNT OVER 我希望计算不同值的移动计数 大致如下 Count distinct machine id over partition by model order by
  • C++11 之前的初始值设定项列表中同一变量的多个突变是否为未定义行为

    考虑以下代码 int main int count 0 int arrInt 2 count count return 0 如果我们使用以下命令编译代码clang std c 03它会产生以下警告 活生生的例子 warning multip
  • redbean - 嵌套豆 - 出了什么问题?

    我正在尝试建立一个简单的嵌套 bean 关系 我错过了什么 我真的很喜欢 redbean 简单的 ORM 语法 并且真的很想使用它 但我似乎无法让它为我工作 还有其他类似的东西可能更成熟吗 我想要一些轻量且简单的东西来构建 WordPres
  • setCloseButtonIcon(Bitmap drawable) 不适用于 ChromeCustomTab 中的 SVG

    我需要更改 ChromeCustomTab Android 中的默认十字图标 我使用以下代码通过后退图标更改它 Bitmap icon BitmapFactory decodeResource context getResources R
  • 无法使用 spring 连接到 Azure SQL 数据库服务器

    我能够连接到具有 IP 地址的数据库 但是如果 我在 Azure SQL 数据库服务器中创建了我的数据库 因为我无法使用 spring 配置 Java Web 应用程序进行连接 它显示错误说 与主机 vinayaka cloudapp ne
  • Shell 脚本中的字符串连接错误

    我是 Shell 脚本编写的初学者 我使用了一个变量来存储值A MyScript 我尝试在后续步骤中连接字符串 A new 令我惊讶的是它不起作用并且 A new worked 您能帮我理解这些细节吗 Thanks Shell 变量名由字母
  • 显示来自 BroadcastReceiver 的复杂 Toast

    我想知道是否有人可以帮助我 我试图在收到短信时显示 toast 元素 这个 toast 应该包含一个布局 其中有一个图像 短信图标 和 2 个文本视图 发件人 消息 如果我从活动中调用以下方法 它将按预期工作 public void sho
  • 为什么 item.getMenuInfo() 为空?

    在我的 ListView 项目中 我有 4 8 个 ImageView 其中一些是不可见的 具体取决于某些值 和 4 个 TextView 当我长按 Listview 的项目时 AdapterContextMenuInfo item get
  • 如何判断 DOM 元素在当前视口中是否可见?

    有没有一种有效的方法来判断 DOM 元素 在 HTML 文档中 当前是否可见 出现在viewport 问题涉及 Firefox Now 大多数浏览器支持获取边界客户端矩形方法 这已成为最佳实践 使用旧答案非常慢 不准确 and 有几个错误
  • 不支持的操作:不可写 python

    电子邮件验证 Email validator import re def is email email input Enter your email pattern w 1 w w file open ValidEmails txt r i
  • 如何为 Eclipse 编写插件? [关闭]

    Closed 这个问题需要多问focused 目前不接受答案 我如何开始编写插件Eclipse 我找过文档 但不幸的是很少或者很差 那么有哪些文章可以推荐呢 Eclipse 和 IBM 的主站点上有一些非常好的资源和教程 最好的方法之一是选
  • mysql_insert_id线程安全吗?

    我正在使用 MySQL C API 构建数据库客户端应用程序 并且我需要获取 INSERT 语句中的最后一个自动增量值 因此 mysql insert id 可以做到 但是这个客户端是多线程的 并且是这样的一段代码 mysql query
  • 如何在Python中使列表只包含不同的元素? [复制]

    这个问题在这里已经有答案了 我有一个 Python 列表 如何使其值唯一 最简单的方法是转换为集合 然后再转换回列表 my list list set my list 这样做的一个缺点是它不会保留订单 您可能还想首先考虑使用集合 而不是列表
  • 保护正在访问的用户文件,以便只有所有者才能访问?

    我正在用 php 编写一个 Web 应用程序 用户可以在其中上传自己的文件或图像 但如何保护这些文件不被所有者以外的其他人访问 想想 dropbox 保护这些文件的机制是什么 我尝试过搜索 但没有得到任何关于此的信息 任何指向教程的指针或链