我正在实施推荐计划,并将人和电子书作为奖励。是否有一种方法可以不使用数据库来实现这一目的,以便电子书仅在24天内可供用户使用?我不希望用户分享电子书PDF。我可以采取什么措施来防止这种情况发生?我猜我也应该更新robots.txt?
我正在使用节点js和JavaScript
答案 0 :(得分:0)
将文件另存为usernameOfUser_deadlineTimestamp.pdf
。现在,当用户请求文件时,只需从文件夹中获取文件名,然后查找以名称usernameOfUser
开头的文件。现在,获取当前时间戳并将其与文件名中的deadlineTimestamp
进行比较。如果当前时间戳小于deadlineTimestamp
,则提供文件else显示错误消息。使用fs确定文件名等。
答案 1 :(得分:0)
正确的解决方案是实施某种身份验证,以了解谁(哪个用户)正在请求电子书,然后通过某种授权来决定您是否将为他提供电子书(如果24天期限已过期,则不会)。
这些信息必须以任何形式在您的服务器上提供,并且无论表格是什么,它都已经是数据库。
现在robots.txt在这种情况下没用,因为没有任何抓取工具可以作为有效用户进行身份验证,因此没有人可以访问该资源。
无数据库解决方案是为每个用户生成一个非常长的链接,并加密该链接中所有需要的信息。 那么像http://example.com/gvdcwt5f23ydvuztb2ftyuzfydy826ngnuy2u2gfzgnyg2y6gn2gyf6g2f2uynfu这样的链接会包含用户名(或任何其他标识)和到期日期。因此,每次请求此链接时,服务器都会对其进行解密并为所请求的电子书提供服务。
robots.txt仍然无用,因为您不会将电子书作为http://example.com/ebook.pdf提供,并且不会提及这些长链接,没有机器人会通过猜测工作链接来扫描您的服务器。
关于用户下载pdf时对pdf的处理,您无法再对其进行控制。您可以在pdf本身中放置版权声明,以防止温和用户共享,但无法保护pdf文件的内容。您可以对其进行加密,但是一旦用户可以使用凭据进行共享,您就可以为所有用户生成pdf,并在其中存储隐藏信息,如果您找到共享副本,则可以识别共享该文件的用户,但是其中任何一个,当然还有很多其他用户可能不值得花时间实施这样的"保护"。