我正在制作一个画廊网站。照片和相册默认情况下应该隐藏,但是所有者可以根据需要共享公共URL。我也想为此使用短网址。临时许可查看照片和相册
我想弄清楚这样做的最佳方法。起初我以为我可以有一个带有短URL代码的MySQL表(类似Zneg8rjK
)和完整的URL(/album/5/
)。当用户访问此链接(mysite.com/Zneg8rjK
)时,它会设置一个会话变量,该变量只是/album/5
加上一个salt的散列,然后将其重定向到完整的URL。然后在该页面上,我可以重新检查当前页面并检查它是否在他们的会话中。没问题......但是当他们点击该专辑中的照片时会发生什么?它打破了。
因此,我想到的下一个解决方案是,我应该为每张专辑和每张照片存储一个密钥,然后有一个公共地址,如/album/5/secretkey
。短网址可以指向这个。但是,如何让用户有权查看相册中的所有照片?我是否应该将每张照片链接到指向照片网址的秘密版本,但是只有当他们通过秘密相册网址访问了相册时?我担心的是我想尽可能地将密钥/ URL从地址栏中保留下来,这样用户就不会意外地将它与他们不应该分享的人分享......但是如果没有这些密钥,没有更好的解决方案。
想法?
等一下,我甚至需要散列URL吗?客户无法修改会话变量吗?
画廊的结构如何?这是一个相当不可能的问题来回答,而不知道它是如何设置的,以及当用户与图像等进行交互时会发生什么。 – 2009-06-17 17:53:04
我不确定你的意思?下面的答案对我来说很好。每张照片都属于一张专辑...您还需要什么?没有任何事情是成立的。当用户试图查看图像时,它会检查他是否有权查看图像,然后或者向他显示图像或告诉他不要。 – mpen 2009-06-17 18:28:08