0

开发提供课程内容的订阅类型网站(如 Lynda.com)的最佳方法是什么?

您如何保护内容不被下载(音频和视频)?

处理密码的最佳方法是什么?用户是否可以拥有一个登录名和密码,然后还有一个额外的密码,该密码会定期更改并由网站分发,以减少人们使用其他人的密码?

您如何最大限度地减少人们与其他人共享密码的次数?

4

3 回答 3

1
  1. 保护内容非常简单:只需编写一个可以访问用户会话/安全详细信息的页面,然后检查他们是否有权下载所请求的文件。您可以使用 Java Servlet 或任何其他 Web 平台(如 ASP.NET、PHP 等)轻松完成此操作。

  2. 我建议不要使用这种多重密码技术。这会给您的客户带来麻烦。它还会让人产生一种感觉,即您认为您的客户正试图欺骗系统。我会做的是记录所有用户登录以及对特定文件的用户访问,并记录 IP 地址。您可以编写一些代码来分析这些数据并查找来自不同 IP 的并发登录。您还可以编写代码来防止多次登录。

于 2008-12-01T00:27:49.700 回答
1

您无法阻止人们复制您的内容。如果您希望他们能够查看它,那么他们将必须能够下载它。如果他们可以下载它,他们可以保存它。

我并不是要让它看起来毫无希望,但我只是想在这里说实话。您可以尝试检测是否有人在他们的帐户上运行爬虫您的网站,尽管这可能有点困难。也许限制他们每 10 或 15 秒下载 1 页。并将每次登录限制为 50 页。这对大多数用户来说不会太明显,但会严重阻止用户尝试进行的任何自动爬取。这些数字可能需要根据您托管的内容类型进行调整。

于 2008-12-01T00:35:53.413 回答
0

注意:回顾这一点,我看到很多缺失的细节和边缘情况需要识别。我以这种形式保留它是因为我认为提供它的感觉很有用(即使细节还没有完全形成),所以你可以看到你会做什么。您需要通过威胁模型来使案例正确排列。

关于密码,您可以通过使用安全连接(TSL 和 https:)的身份验证过程来防止密码共享,并且在客户端计算用户提供的密码以及机器和用户帐户的哈希值(与您的用户 ID 和客户端计算机上的用户帐户)关联的数据。即使密码已知,散列函数也不会在不同的机器或用户帐户上产生正确的散列。

有一个有趣的问题是如何在第一次建立哈希(这是您接受的 - 您永远不知道用户选择的密码)以与您使用的用户 ID 关联。您需要为订阅提供的唯一密钥,并在注册时通过电子邮件握手提供,并初始选择用户 ID(如果与电子邮件地址不同)和密码。

如果您使用 cookie 来避免人们必须重复登录,您可能希望在 cookie 中包含加密/散列信息,将其与机器以及订阅相关联。

现在,做了这么多之后,您确实遇到了人们希望能够在多台机器上工作并且还需要重置用户密码以便他们可以选择一个新的密码来代替被遗忘/受损的密码的问题。由于这意味着提供电话支持和其他方式来重新验证真实用户,因此您可能需要考虑是否值得您为此付出代价,以及用户是否会认为这对他们来说是值得的。

关于盗用从该站点获得的材料,您遇到的问题要困难得多。加密不会有太大帮助,您通常希望允许用户保留材料以供离线使用、在使用材料时参考等。您可以做的是将材料识别为您的财产,并将材料识别为您的财产和以难以消除所有事件的方式提供给特定订户。这是很多服务器端的工作。结合对订阅者不信任的明显表现,您可能需要重新考虑并努力获得更值得信赖的东西,例如,提供一些不仅仅体现在拥有内容的价值。 你确定要这样做吗?

注意 2:如果您正在提供某种进展,例如通过课件和课程工作,那么您可以做一些显而易见的事情,如果不知何故有多个人进来,如果他们取得任何进展,他们就会把事情搞砸为其他任何人。个性化和进步程度越高,将帐户提供给其他人使用的吸引力就越小。这不会阻止材料的保留,但任何广泛重复使用提取的内容都必须通过其他方式处理。

于 2008-12-01T03:40:57.940 回答