对抗OCR逆向工程



我指的是基于软件的OCR?图像到文本引擎的转换工具,stackoverflow有很多关于构建OCR的帖子,但我的看法正好相反,就像任何关于如何保护我的图像免受逆向工程影响的指导一样。

例如,我有只包含文本的图像,我如何让任何人都很难解码数据,有什么想要的图像格式可以做到这一点?或者我们可以混淆图像?

使用特殊字体或失真可以保证OCR保护吗?尽管我的要求不允许提供太多扭曲的文本。

任何方向都将非常有帮助

据我所知,你收集了一些受版权保护的文本,这些文本应该可以被人类清楚地阅读,但你不希望它以电子形式从你的服务器泄露。我认为混淆文本使其更难进行OCR不是一个好主意,因为这会使其无法被人类阅读,尤其是当文本很长的时候。基本上,对人类来说很容易阅读的东西,可以完全OCR-ed。OCR的困难对人们来说也是困难的。在最坏的情况下,攻击者可能会雇佣一家印度公司来手动重新键入文本,这实际上并没有那么昂贵。

我愿意为你提供其他方面的保护。你的用例看起来怎么样?为什么用户可以在他们的电脑上以图像的形式获取你的文本?他们下载的只是PDF或图像文件吗?在这种情况下,与下载文件的可能性作斗争会简单得多,而不是使其无法读取。

例如,您可能会考虑不一次访问整个文件,而是通过进入下一页所需的人工交互逐页显示。你甚至可能扰乱你的网络界面,使其不可能通过典型的网站下载实用程序下载所有内容。每个页面都应该显示在同一个URL上,但实际的导航应该使用AJAX甚至一些专有接口和服务器进行通信。

另一种方法是让每个页面上的许多虚假链接不被人类看到,但它们会误导下载工具,使其下载大量错误的内容,或者以错误的顺序下载,使其无法使用。

如果你能成功地对抗自动下载,你甚至不必以图像的形式提供内容,它可以是直接的文本,但只是其中的一小部分。无论如何,它都将无法使用。

希望这能让你知道该走哪条路。

正如我和其他人所说,让大量文本变得足够模糊,以至于OCR无法读取,这对人类来说是不切实际的。

你想打败什么特定的威胁吗?简单的网络爬虫通常不执行javascript,所以让文本更难抓取的一个愚蠢方法是用AJAX请求加载文本并将其插入DOM。

或者,如果你想变得更激烈,你可以在Flash或Silverlight控件中显示文本——仍然不能进行OCR验证,但这将使自动抓取大量文本变得非常容易,特别是如果你有Flash滚动条和/或分页。(我应该指出,像文本这样简单的东西的Flash控件使用起来很烦人,不可搜索或添加书签,而且显然在大多数移动设备上都不起作用。)

我认为你做不到。对于CAPTCHA来说,是的,有很多研究,但你也会从个人经历中知道它们读起来有多烦人。对于较长的文本,这是不可能的。不过,我会认真地质疑这里的用例或业务模型。由于某些原因,您的某些内容需要OCR保护。这意味着有人愿意花费资源来OCR您的内容。你为什么要和那些人打架?让他们成为客户,并以纯文本形式提供内容,收取一定费用。如果该费用低于他们的OCR成本,您将获得双赢。你试图实现的听起来像是两败俱伤。

我看到一些页面通过在文本中使用不可见的字母和其他"噪音"来混淆文本。这样,您仍然可以将其显示为文本,同时使其更难复制。

另一个想法可能是以某种方式在文本中添加水印,以识别"被盗"副本的来源。这是否有用取决于你想要保护自己免受什么伤害。如前所述,如果它可读,有人可以手动复制它。

相关内容

  • 没有找到相关文章

最新更新