我知道标题可以更好,但我不知道如何定义我的问题。 我的问题是下一个,我不确定它是否可行,但我认为它是。
我有一些.pdf在线,我想为第三人保护他们。 我的想法,而不是分配密码并显示如下输入:
我想在路径中发送密码(或令牌)。
之类的东西 file.pdf?tpw=aaaa-bbb-dddd
有可能吗?我使用C#创建了pdf。
编辑:案例
我有一个应用程序,它创建一个带有一些pdf的文件夹,这些pdf可以通过表单上传或创建。 (这部分有效)
所有这些文件都存储在互联网(全球访问)中,然后我想阻止第三人或搜索引擎(我读这个,它看起来不是一个大问题)
然后这是问题,我希望有些用户可以访问一些pdf,例如
但不是k到54等等。
我的想法是发送给用户(他们应该访问抛出链接)类似" https://domain.com/pdf/33.pdf?password=222222"并且没有此密码无法访问。
如果无法做到这一点,我可以创建一个"中间页面"将链接放在那里。
并发送网址,如" http://domain.com/pdf/view.chtml?id=33&password=222222"
编辑:如果他们输入https://domain.com/pdf/33.pdf
,则阻止访问编辑2:解决方案(至少现在)
为每个文件存储到数据库中
- filename - user(以md5为单位) - 令牌(在sha1中)
向用户发送www.domain.com/api/showpdf.chtml?user=XXXXX&token=KKKKKKKKKKKKKKK
当用户点击时,用户只需检查数据库,如果存在任何文件,则为令牌,如果是这种情况,则显示该文件。
要解决直接访问的问题,我们将把文件放在" localhost"文件夹
谢谢大家。
答案 0 :(得分:1)
我认为获取密码不是一个好主意,它们是可见的,密码只应发送一次,在服务器中启动用户会话,然后创建一个临时票证用户,应该通过POST在每个请求上发送此票证。
无论如何,您需要使用数据库并为每个用户存储用户,密码,文件和每个文件的权限,您可以使用文件,但它永远不是一个好主意存储密码用纯文本表示。我猜你已经有一个数据库在运行,你只需要为它添加一个文件和一个文件的权限表。
此外,您永远不应该在数据库中保留真实密码,而只是它的校验和(SHA-1或类似)