Php 如何保护用户上传到我网站上的私人照片?
我正在使用PHP/MySQL处理图像上传。我希望上载到登录用户库的所有图像仅可由登录用户访问。我不希望人们能够猜测文件名并直接链接到它 我认为我可以将图像存储在webroot之外,并通过一些PHP访问它们。但是,如果用户希望稍后通过链接与朋友共享图像,我将如何允许 我是否需要采取任何其他步骤来确保只有用户才能看到他们的照片?我非常认真地对待用户隐私,希望做到这一点 提前谢谢你的帮助 您可以使用基于配置文件(用户)的共享系统,其中登录的用户a可以指示登录的用户B可以查看图像C,并且可以随意添加/删除此类权限Php 如何保护用户上传到我网站上的私人照片?,php,image,uploading,Php,Image,Uploading,我正在使用PHP/MySQL处理图像上传。我希望上载到登录用户库的所有图像仅可由登录用户访问。我不希望人们能够猜测文件名并直接链接到它 我认为我可以将图像存储在webroot之外,并通过一些PHP访问它们。但是,如果用户希望稍后通过链接与朋友共享图像,我将如何允许 我是否需要采取任何其他步骤来确保只有用户才能看到他们的照片?我非常认真地对待用户隐私,希望做到这一点 提前谢谢你的帮助 您可以使用基于配置文件(用户)的共享系统,其中登录的用户a可以指示登录的用户B可以查看图像C,并且可以随意添加/删
如果无法将查看链接到用户帐户,则可以在图像或图像组(如图库)上设置“查看密码”;查看图像的URL将检查用户/所有者是否是查看者,如果不是,则需要密码。您最初的假设是正确的。将文件存储在公共目录之外,并使用PHP脚本检查授权并显示图像 为了解决共享问题,你可以给他们一个区域,让他们可以说“共享这张照片”,它会显示一个URL,如
http://www.yoursite.com/image/12390123?v=XA21IW
XA21IW是存储在表中的一些唯一哈希,它们可以指定生存期,也可以自己编写一个。当页面加载并传入v时,您可以查找一个表以确定它是否是该图像id的有效哈希
你在这里有一些选择。每次他们单击“共享此照片”时,您可以:
或者只允许图像是公共/私有的。我认为将图像存储在webroot之外并通过一些PHP访问它们是没有问题的。当任何用户共享php脚本时,您都可以使用该脚本访问它们。。即使这样做更安全,因为您始终可以执行一些安全检查。在实际显示图像之前
谢谢 您将图像保存到服务器,将图像名称、所需数据和一些散列放入数据库中。。。。 然后,将图像的路径设置为名为images.php的php文件,在该文件中,您可以从数据库中通过GET和find image by hash接收此哈希,并将头设置为image/GIF example create image。图像的路径将是images.php?hash=abcdefg
其他人考虑用户权限,所以。。。我认为有一些回应与这个解决方案。。。非常简单…感谢您的快速响应。这与我计划采取的方法非常相似。我基本上是想确保没有更安全的方式,我不会忘记任何事情。谢谢