0

我有一个包含文本内容的网页(在 .Net 平台上,使用 C#),我想阻止用户复制文本或打印文档。
如果用户很难获得该页面的副本,我知道他可以。但我想让它尽可能难。
我在上面找到了几点。

  • 使用 Java 脚本阻止用户复制文本。缺点是用户可以轻松地从源中复制文本。
  • 不要将文本制作成 1 张大图,因为用户可以一次性打印出来。
  • 使用插件将文本显示为在定义的视口大小中可滚动,而无法复制文本。然后用户不得不费力地打印出他可以放入窗口视口的每一位,这对我来说很好。在这种情况下使用 Flash。
  • 我见过ionCube 的 (php) 解决方案,您无法复制或查看源文本,但缺点是它可以轻松打印。我想在这里看到一个asp的编码解决方案以及阻止用户打印页面的能力:)
  • Scribd 不是一个解决方案,因为如果您选择阻止用户从您的 scribd 文档中复制文本,它会将文本转换为难以阅读的图像。

可能还有更多我不知道的解决方案。
你能告诉我在这种情况下最好的解决方案吗?

4

2 回答 2

2

没有解决办法。任何网页都必须在内存中表示为 DOM,并且不乏工具可以让人们对其进行操作并从中提取文本。

DRM 充其量是无效的,当涉及到 HTML 时,“最好的”是一个很长很长的路要走。

于 2011-12-22T22:38:49.513 回答
2

您可以使用初始解决方案并使用 CSS 规则将所有内容隐藏在打印版本中:

<style type="text/css" media="print">* { display: none;}</style>

当然,正如 Quentin 所说,没有明确的方法可以做到这一点,但是阻止选择,使用通过 javascript 在页面中写入的文本的编码版本并使用这个 CSS 片段,您可以获得大约 80% 的用户。

document.getElementById('elementId').innerHTML = unescape(escapedTextGoesHere);
于 2011-12-22T22:48:35.407 回答