textshield v1.0.2
TextShield
Protect sensitive information aganist unwanted web crawling and scraping bots.
Demo
Basic features and functionalities are introduced in demo: TextShield Demo
Getting started
Prebuilt TextShield library textshield.js is available in releases. Once the script is included in the page, you're all set!
NPM Install
TextShield can be installed with npm with TypeScript support.
$ npm install textshieldModules like Encoder are reachable as named module while default export indicates TextShield module.
import TextShield, { Encoder, Decoder } from "textshield";Usage
With the presence of TextShield plugin, texts that contain sensitive information can protected from bots with following steps.
1. Text encoding
Suppose that we have HTML text like below and we would like to protect the email part.
Please email me at example@example.comUsing the TextShield web encoder, we can convert example@example.com to protected code.
Please email me at <shield value="oIeOu5qmeBX0YXHpLZNWN/6BcAwf/j8KJ3LXcEWOE7VacvgSGOsskNLrALw=XU1QHTg0PHA9OgQ=AVkQYQYmAg=="></shield>Or by using server-side TextShield encoding libaray, desired text can be encoded dynamically. Currently, Node.js plugin is supported.
Please email me at
<%= TextShield.encode("example@example.com", DecodeCost.Low, Mode.Normal); %>2. Text rendering
Three text rendering options are available.
PLAIN: Display text as normal page text. Best in user experience but cannot protect bots with JavaScript engine.NORMAL: Render text incanvaselement. Can protect most bots.DISTORT: Apply live distortion effect to canvas rendered text. It is able to protect rare bots that integrates OCR technology.
Rendering options are set through mode attribute in <shield> tag.
<shield mode="distort" value="..." />Contribution
Any kind of contributions or questions are heartly welcomed.
License
TextShield is released under the MIT License.