Protect sensitive information aganist unwanted web crawling and scraping bots.
Basic features and functionalities are introduced in demo: TextShield Demo
Prebuilt TextShield library textshield.js
is available in releases. Once the script is included in the page, you're all set!
TextShield can be installed with npm with TypeScript support.
$ npm install textshield
Modules like Encoder
are reachable as named module while default export indicates TextShield
module.
import TextShield, { Encoder, Decoder } from "textshield";
With the presence of TextShield plugin, texts that contain sensitive information can protected from bots with following steps.
Suppose that we have HTML text like below and we would like to protect the email part.
Please email me at example@example.com
Using 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); %>
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 incanvas
element. 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="..." />
Any kind of contributions or questions are heartly welcomed.
TextShield is released under the MIT License.