1

I am making a online book reader and my problem is whatever i did to secure book data, it can be easily extracted through firebug. I tried following things to protect my book content

  1. sent encrypted data from server , and on client side decrypted the data and sent to html Canvas.

but this process also ddnt workout at the end i can get data from firebug. Is there any way from which i can protect my content?

I can see only one solution that is sending images from server but this also i dont want because there will be too much load on my server. is there a better way to solve this problem?

I have heard about node.js, that it is a javascript based server. can i make a page from canvas(HTML5) at server side and send directly to browser?

ghost
  • 467
  • 2
  • 6
  • 19
  • 1
    If your client can see the content your client can access, and manipulate, the content. Unless you wrap it in something such as Flash, perhaps. Or make some use of the eventual [DRM/'Encrypted Media Extensions'](https://dvcs.w3.org/hg/html-media/raw-file/tip/encrypted-media/encrypted-media.html), but I've not read them so I'm unsure if they'd be able to help you. – David Thomas Jul 17 '14 at 06:31

2 Answers2

1

I think you just have to accept that any data sent from the server to the client is data that you have given up control over, no way around that. Even if you create a bitmap image on the server and send to the client, it will still be possible to OCR decode the image to get to the text.

Instead, perhaps, focus on methods for motivating people to pay or donate for the content. Or seek other revenue streams.

That being said, web-workers could perhaps be a way to hide data from the DOM as you ask. But since web-workers conversely don't have access to the DOM and hence the canvas, you will need to proxy your canvas calls and FireBug or similar tools will still be able to trace those calls. It would be an exercise left to the reader how to ensure that those calls doesn't contain data that can be easily comprehended.

visibleman
  • 3,175
  • 1
  • 14
  • 27
1

If you deliver content via HTML (no matter how you create it) - it will always be visible to the end user via browser's special panels. In this approach all you can do is prevent the 'regular Joe' from simply saving the page or copy/pasting it somewhere else. Technically advanced users will be able to 'read' your content as they wish.

So, you will need to use some embedded objects, like Flash movie, which will load the encrypted text, decrypt it and display. They are not as easy to copy as the HTML ones, but still possible, if one wants it a lot.

Finally, even if you put all your text into images - there is text recognition software available, and your text will be parsed away within minutes of work. So, your only solution is to make it easier to pay you for unlocking the text, rather than hack it away with tools.

Anatoliy Kim
  • 768
  • 4
  • 13
  • I don't think you understand what you are asking. Node.js is this: http://stackoverflow.com/questions/1884724/what-is-node-js However, it is not what you need. – Anatoliy Kim Jul 17 '14 at 10:34
  • Yes create image in server side and send to client is only solution. but for supporting multiple screen size is really a difficult task. @Toly is svg is solution for it. As I read it support server side creation. – Koushik Rout Jul 17 '14 at 10:51
  • svg is simply vector graphics format. granted you can actually generate the image that way, but it doesn't solve the problem of parsing text out of images. – Anatoliy Kim Jul 17 '14 at 10:58