如何在 php 和 URL 上正确分享照片解决方案 - Webproject

How to share a photo correctly on php and URL solution - Webproject

我对正在进行的网络项目有疑问。

情况: 有登录系统->登录后有很多照片

1) 我输入凭据 -> login.php 到 index.php

2) 我看到了我的个人资料,然后我想在推特上分享它(例如..)。

3) 我分享的是 URL 即 "page.com/index.php#&album=1&id=1"

问题是 URL,如果我分享了将毫无用处,因为如果其他用户有帐户,将显示他的照片而不是我的。

我正在努力寻找解决办法,不知道其他网站怎么分享照片没有这个问题。

希望你能帮助我,如果我的英语不是最好的,抱歉。

您需要多创建一个分享图片的路径

/share.php?user=1&album=1&id=1

在此文件中,您可以获得所有参数(用户、相册、ID)以显示正确的照片。

并且您需要添加此路线才能分享到 index.php。

Facebook 示例:https://www.facebook.com/sharer/sharer.php?u=http%3A//site.com/share.php?user=1%26album=1%26id=1

我会为存储在照片旁边的每张照片生成一个 UUID,并在 URL 中使用它而不是两个 ID,所以你的 URLs看起来像:

http://example.com/photos/123e4567-e89b-12d3-a456-426655440000

然后您可以将此 URL 分享给任何人,并将逻辑添加到服务器以决定照片是否应该对请求它的人可见。

如果您想要一个更容易记住或易于输入的 UUID,有很多库可以为您创建不同格式的 UUID。

这样做的主要好处是简单,你只有那张照片的 UUID,无论你的设计如何变化(例如,如果你删除相册),你都有很好的机会能够保持 URL 不变,或者至少,如果您将来确实需要更改格式,可以继续支持原始 URL。

另一个很大的好处是,无论您使用什么作为 UUID 都将(应该)难以猜测,因此您为攻击者移除了潜在的路径,否则攻击者可能会遍历 ID,并且有信心他创造了一个真正的 URL.