1

我只想保护每次请求后显示的某些数字。这样的数字大约有30个。我本来打算生成图像来代替这些数字,但是如果图像没有像验证码那样扭曲,脚本就不能破译这些数字吗?此外,加载图像对文本的性能影响有多大?

4

15 回答 15

9

确保坏人无法获取您的数据的唯一方法是不与任何人共享。任何其他解决方案本质上都是与屏幕刮板进行军备竞赛。在某一时刻,你们中的一个人会发现军备竞赛的成本太高而无法继续。如果您共享的数据具有任何可感知的价值,那么屏幕抓取器可能会非常确定。

于 2009-02-27T00:39:32.727 回答
7

这是不可能的。

  • 您使用 javascript 并加密页面,在解密后使用 document.write() 调用。我要么从浏览器的显示中抓取,要么通过 JS 引擎提供页面以获取输出。
  • 你使用闪存。我可以戳入闪存文件并获取值。你在闪存中加密它们,我可以运行它,然后从解释器的显示器中获取输出作为图像序列。
  • 你使用图像,我可以通过 OCR 提供它们。

你在军备竞赛中。你需要做的是让你的信息如此有用,你的页面如此易于使用,以至于你成为权威来源。定期更改输出格式以跟上进度也很方便,但屏幕抓取工具可以处理这种情况,除非您做出相当彻底的更改。激进的变化将用户赶走,因为页面对他们来说一直是陌生的。

您的图像解决方案不会有太大帮助,而且图像的效率要低得多。在 HTML 编码中,数字通常只有几个字节长。图像从几百字节开始,根据您想要的大小扩展到 1k 或更多。图像也不会以用户为其浏览器窗口选择的字体呈现,并且对使用辅助计算设备的人(视障人士)毫无用处。

于 2009-02-27T03:02:15.957 回答
5

除了图像,您还可以使用 JavaScript 或 Flash 显示数字。

您还可以使用 CSS 使用绝对或相对位置的各种组合来定位单个数字。您还可以使用 JavaScript 来帮助您创建这些 DIV。关键是要混淆得足够多,以至于变得非常困难。

另一种解决方案是使用分段或单个点的图像,并使用 CSS 重新构建数字的图像,有点像点阵显示。您可以使用这些绝对定位的 DIV 乱扔页面的源代码,并再次通过动态创建它们来使重构变得更加困难。

无论如何,您无法阻止确定的抓取工具获取数据:自动化 Web 浏览器并截取可提供给 OCR 的屏幕截图并不需要太多时间。无论如何,没有人愿意花一分钱手动获取数据。

关键是:你的对手(用户?)有多坚定。
这有点像软件保护业务:让事情变得足够困难以阻止偶然的“盗版者”并不是太难,而且总的来说这是一个相当不错的方法。

但是,如果您提供的数据有很大价值,那么您实际上无法采取任何措施来保护它。
你所能做的就是让它变得足够困难,以至于随便的“小偷”宁愿继续为你的服务付费,而不是规避它。

于 2009-02-27T00:33:26.703 回答
2

Javascript 可能是最容易实现的,但是您可以通过在无效数字上放置图层、将错误的数字混合到背景中或通过 css 使它们不可见来获得真正的创意并拥有大量数字,其中某些数字是可见的和半随机生成的类名。

于 2009-02-27T00:38:58.860 回答
1

生成包含这些数字的图像并显示图像。:-)

于 2009-02-27T00:28:23.830 回答
1

我不敢相信我正在推广一种常见的恶意软件脚本策略,但是......

您可以将数字编码为在运行时呈现的编码 Javascript。

于 2009-02-27T00:31:59.500 回答
1

我认为你们对这些解决方案过于敏感。Javascript、Capcha,甚至诉讼和 DMCA 流程都不能解决网络抓取和数据盗窃的复杂适应性问题。您不认为防止恶意机器人和网站抓取的“理想”解决方案将在实时主动缓解策略中发挥作用吗?非常类似于内容保护网络。就说吧。

例子:

IBM - IBM ISS 数据安全服务

蒸馏 - www.distil.it

于 2012-02-12T01:25:03.013 回答
0

你能提供更多关于你在做什么的细节吗?当然,创建图像而不是转储数字文本会降低性能,但是您每天这样做的频率如何?

使用 JavaScript 与使用文本相同。逆向工程很简单。

于 2009-02-27T00:35:20.087 回答
0

使用 Flash 使用动画数字。它可能不是万无一失的,但它会使其更难破解。

于 2009-02-27T00:40:22.803 回答
0

发布大量虚拟数字并使用外部 CSS 显示正确的数字怎么样?只要刮板不开始解析外部CSS。

于 2009-02-27T00:45:53.790 回答
0

不要输出数字,即前缀

echo $secretNumber;

//.

于 2009-02-27T00:50:59.987 回答
0

对于所有建议使用 Javascript 或 CSS 来混淆数字的人来说,可能有一种解决方法。Firefox 有一个名为 abduction 的插件。基本上它所做的是将页面作为图像保存到文件中。您可能可以修改此插件以保存图像,然后分析图像以找出试图隐藏的密码。

基本上,如果从页面上抓取这些数字有足够的动机,那么它就会完成。否则,只需发布​​一个常规号码,让您的用户更容易使用,这样他们就不必担心无法复制和粘贴号码,或者这种诡计导致的其他此类问题。

于 2009-02-27T02:28:48.253 回答
0

只需使用 CSS 盒子模型做一些意想不到和奇怪的事情(每次都不同)。强制他们实际使用浏览器支持的屏幕截图。

于 2009-02-27T03:10:12.677 回答
0

我认为这是不可能的,你可以让他们的工作更难(使用这里建议的图像)但这是你能做的,你不能阻止一个有决心的人获取数据,如果你不想要他们抓取你的数据,不要发布它,就这么简单......

于 2009-02-27T03:33:38.613 回答
0

假设这些数字经常更新(如果它们不更新,那么保护它们完全没有意义,因为人类可以手动转录它们),您可以通过限制来限制自动抓取。如果您可以限制您赢得的这些检查,而无需使用混淆,自动化脚本将不得不经常访问您的站点以检查更新。

有关节流的指示,请参阅此问题

于 2009-02-27T06:28:36.087 回答