我想只保护每个请求后显示的某些数字.大约有30个这样的数字.我计划在这些数字的位置生成图像,但如果图像没有像验证码那样扭曲,那么脚本是否能够破译数字呢?此外,加载图像对文本的性能影响有多大?
确保坏人无法获取数据的唯一方法就是不与任何人分享.任何其他解决方案基本上都是使用筛网刮刀进行军备竞赛.在某种程度上,你们中的一个人会发现军备竞赛成本太高而无法继续.如果您共享的数据具有任何可感知的值,那么屏幕抓取器可能会非常确定.
这是不可能的.
您使用javascript并加密页面,在解密后使用document.write()调用.我要么从浏览器的显示屏中抓取,要么通过JS引擎提供页面来获取输出.
你使用Flash.我可以查看flash文件并获取值.你在闪存中对它们进行加密,我可以运行它然后从解释器的显示器中获取输出作为一系列图像.
您使用图像,我可以通过OCR提供它们.
你正处于军备竞赛中.您需要做的是使您的信息变得如此有用,并且您的页面易于使用,从而成为您的权威来源.定期更改输出格式以保持同步也很方便,但屏幕抓取工具可以处理这种情况,除非您进行相当彻底的更改.激进的变化会驱使用户离开,因为页面对他们来说一直不熟悉.
您的图像解决方案不会有太多帮助,图像的效率低得多.HTML编码中的数字通常只有几个字节长.图像从几百个字节开始,并根据您想要的大小扩展到1k或更多.图像也不会以用户为其浏览器窗口选择的字体呈现,并且对于使用辅助计算设备(视障人士)的人来说是无用的.
除了图像,您可以使用JavaScript或flash显示数字.
您还可以使用CSS使用绝对或相对位置的各种组合来定位各个数字.您还可以使用JavaScript来帮助您创建这些DIV.重点是模糊不清,变得非常困难.
另一个解决方案是使用段或单点的图像,并使用CSS重新构建数字图像,有点像点阵显示.您可以使用这些绝对定位的DIV来丢弃页面的源,并再次通过动态创建它们来使重建变得更加困难.
无论如何,你无法阻止一个坚定的剪贴板获取数据:自动化网络浏览器并获取可以提供给OCR的屏幕截图并不需要太多.无论如何,没有任何人可以通过支付某些便士手动获取数据.
关键是:你的对手(用户?)有多坚定.
这有点像软件保护业务:让事情变得足够困难,以至于你会阻止随意的"盗版"并不是太难,而且这是一种相当不错的方法.
但是,如果您提供的数据有很多价值,那么您无法真正做到保护它.
所有你能做的就是让它变得足够困难,以便随便的'小偷'更喜欢继续为你的服务付费而不是绕过它.