Python 应用程序的简单许可保护

发布于 2024-11-15 00:11:20 字数 436 浏览 3 评论 0原文

虽然有很多这样的问题,但请耐心等待,因为我认为我的问题有所不同......

我有一个 5 美元的 Python 应用程序,我使用 py2exe、py2app 和 Linux 源代码分发它。该应用程序有一年的许可证,因此人们需要在一年后升级到新版本。我想添加某种简单的许可证保护来强制执行一年的限制。由于该应用程序只需 5 美元,我不在乎它是否容易被绕过。仅仅拥有一些东西就会鼓励许多用户在一年后支付 5 美元进行升级,而不是忽略许可证。

请注意:

  • 我希望源代码易于阅读,因此不会混淆
  • 我不想编译代码或 SaaS
  • 我会考虑某种许可证密钥系统,如果它真的很简单,但不希望任何复杂的东西

我的第一个想法是简单地记录安装日期(例如,使用 wxConfig)并在一年后禁用该软件,并礼貌地提示请升级。

对此有更好的解决方案吗?

Although there are quite a few questions like this, please bear with me as I think mine is different...

I have a $5 Python app that I distribute using py2exe, py2app, and source for Linux. The app has a one-year license so that people need to upgrade to a newer version after one year. I would like to add some kind of simple license protection to enforce the one-year limit. Since the app is only $5, I don't care if it is easily circumventable. Just having something will encourage many users to pay $5 to upgrade after a year as opposed to ignoring the license.

Note that:

  • I want the source to be easily readable so no obfuscation
  • I don't want to have compiled code or SaaS
  • I would consider some kind of license key system if it was really simple but don't want anything complicated

My first thought is to simply record the install date (e.g., using wxConfig) and disabling the software after one year with a polite message to please upgrade.

Are there any better solutions to this?

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(1

简单气质女生网名 2024-11-22 00:11:20

为什么比较日期的 if 语句不能简单地为您解决这个问题?

做到这一点的最佳方法可能是将数据包含到您的软件中,这些数据确实需要保持最新才能对最终用户有用,例如 TurboTax 中的税表。当然,该业务策略的可用性取决于您的应用程序和市场。

您已经说过代码是源代码可读的。你还能做什么?您可以有很多这样的 if 语句...但是 grep 或 perl 或其他 python 脚本也可以快速找到所有这些语句并很快修复它们以使其重新工作。如果您的 5 美元产品有市场,恼怒的客户可能会将日期禁用脚本分发给他的好友或通过网络分发。

这就像行李挂锁。只适用于诚实的人……但也许这已经足够好了。

您可以在源代码中的关键 if 语句旁边放置 DMCA 通知。 if 语句是一种防止在许可日期之后使用的措施。请教好律师。您的里程可能会有所不同。

维基百科在“反规避”下有关于 DMCA 的内容:

规避访问控制
第 103 条(17 USC 第 1201(a)(1) 条)
DMCA 规定:任何人不得
规避技术措施
有效地控制对a的访问
受此标题保护的作品。这
法案在章节中定义了它的含义
1201(a)(3):(3) 如本条中所用
小节——

(A)“规避技术”
测量”的意思是解扰
打乱的工作,解密
加密工作,或以其他方式避免,
绕过、删除、停用或损害
一项技术措施,无需
版权所有者的授权;和

(B) 技术措施
「有效控制对
工作”如果以平常的方式衡量的话
其运作过程中,需要
信息的应用,或
过程或治疗,与
版权所有者的授权,
获得工作机会。因此,如果
有一些“技术措施
有效地控制对a的访问
工作”,规避是违法的
那个措施。然而,第 1201 条
对此创建了几个例外
规则,而国会图书馆是
有权创造额外的
例外。

如果您的 GPG 签名字符串中包含使用您的公钥签名的日期...那么恕我直言,您可以声称该过期信息字符串...具有版权所有者的授权。您还可以检查公钥是否被篡改,但显然您必须这样做,因为规避是非法的...

注意:自由软件先驱理查德·斯托曼(Richard Stallman)有一个理论,即竞争往往会消除软件的反功能,如付费墙、烦人的提醒等。

Why doesn't an if statement comparing the date not trivially solve this for you?

The best way to do this might be to include data into your software that really does need to be kept up to date to be useful to the end user, like the tax forms in TurboTax. Of course the availability of that business strategy depends on your application and market.

You have said the code is source readable. What else could you really do? You can have lots of these if statments... but grep or perl or another python script can also quickly find them all and fix it back to work again quite quickly. If you have a market for your $5 product an annoyed customer might distribute the date disabling script to his buddies, or over the web.

This is like a luggage padlock. Only works on honest people... but perhaps that is good enough.

You could put a DMCA notice next to the critical if statement in the source code. An if statement is a measure to prevent use after the license date. Ask a good lawyer. Your mileage may vary.

Wikipedia has this on the DMCA under "Anti-circumvention":

Circumvention of Access Controls
Section 103 (17 U.S.C Sec. 1201(a)(1))
of the DMCA states: No person shall
circumvent a technological measure
that effectively controls access to a
work protected under this title. The
Act defines what it means in Section
1201(a)(3): (3) As used in this
subsection—

(A) to 「circumvent a technological
measure」 means to descramble a
scrambled work, to decrypt an
encrypted work, or otherwise to avoid,
bypass, remove, deactivate, or impair
a technological measure, without the
authority of the copyright owner; and

(B) a technological measure
「effectively controls access to a
work」 if the measure, in the ordinary
course of its operation, requires the
application of information, or a
process or a treatment, with the
authority of the copyright owner, to
gain access to the work. Thus, if
there is some "technological measure
that effectively controls access to a
work", it is illegal to circumvent
that measure. However, Section 1201
creates several exceptions to this
rule, and the Library of Congress is
empowered to create additional
exceptions.

If you had the date within a GPG signed string signed with your public key... then IMHO you could claim that this expiration information string... had the authority of the copyright owner. You could also check for tampering against the public key, but it is not obvious that you have to do so, since it is illegal to circumvent...

Note: Richard Stallman, the free software pioneer, had a theory that competition tends to eliminate anti-features from software like paywalls, annoying reminders, etc.

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文