Repository navigation
Releases: hirasso/html-obfuscator
Releases · hirasso/html-obfuscator
Release list
v1.0.0
Major Changes
- cf821cc: -
obfuscate()no longer injects the client<script>. RenderclientScript()once yourself (e.g. in<head>).clientScript(debug: true)renders the un-minified script.- Removed:
->injectClientScript(),->withTagName()(tag is always<ob-fus-ca-ted>),HTMLObfuscator::createEmpty(),createForClientScript(),ObfuscatorConfig. DEFAULT_TAG_NAMErenamed toTAG_NAME.
v0.6.1
v0.6.0
v0.5.1
Patch Changes
- bd76483: Add PHPBench with baseline benchmarks for obfuscation performance
- 14af52f: Fix encoding/decoding of non-ASCII characters (umlauts, emojis, etc.)
- 18b86f9: Encode the numeric strategy index together with the obfuscated value in a single base64-encoded string
- a010713: Rename
SupporttoDomHelper, prune toparseHtmlFragmentandgetTextNodes
v0.5.0
v0.4.0
Minor Changes
- 777998a: Add
revas a second obfuscation strategy alongsidexor. Strategies are now applied at random per value. The value attribute format changed to be strategy-first:xor:<base64>andrev:<base64> - 5d129b5: Remove the required
$keyparameter from all public API functions (obfuscate(),clientScript(), and the named constructors onHTMLObfuscator). XOR now generates a random 16-byte key per value and inlines it into the encoded blob. Thedata-keyattribute is no longer injected on the client script tag
Patch Changes
- 5d129b5: Add
readme:generatecommand: parses README.md and injects it into the demo page with Shiki (nord theme) syntax highlighting. Replace Prism.js with Shiki in the demo; relative README links are rewritten to absolute GitHub URLs - 5d129b5: Introduce
Contracts\ObfuscatedValueinterface to support multiple obfuscation strategies. RenameObfuscatedValuetoXORValue(implementsContracts\ObfuscatedValue)
v0.3.0
Minor Changes
-
cd28bbd: Replace the
<obfuscate-text>custom element with an[obfuscate-text]attributeBreaking: update your markup from
<obfuscate-text>...</obfuscate-text>to<span obfuscate-text>...</span>(or any element).The attribute is removed from the output; no
display:contentsworkaround is needed.
v0.2.0
Minor Changes
- e16d4b1: Preserve the scheme in obfuscated
hrefattributes to prevent FOUC if links are styled usinga[href^="mailto:"]ora[href^="tel:"] - e16d4b1: Rename
->render()to->saveHTML()and->getDocument()to->saveDocument(). Apply changes in->saveDocument().
Patch Changes
- e16d4b1: Do not render aria-label and noscript for obfuscated attribute elements
v0.1.0
Minor Changes
- e88ed9a: Add
clientScript()helper function to render the client script deliberatly - 9dbab5c: Add
obfuscate()helper function - 81fed26: Add
<obfuscate-text>custom element to obfuscate all textContent within - a16ed7a: Use a closed
shadowRootto render obfuscated plaintext values. Cannot be read by external JavaScript. - d6b36e5: Add dimension-optimized placeholders for obfuscated plain text
Patch Changes
- dcdd27f: Add
->withAriaLabel()and->withNoscriptText()to independently control the aria-label and noscript fallback on obfuscated elements - 4680ea0: Add
demo/pages, PHP e2e fixture, and Playwright tests for all three reveal triggers; renamecomposer exampletocomposer demo - 53977fb: Deploy demo to html-obfuscator.rassohilber.com via FTP on release
- abedbdc: Rename
withCustomElementName()towithTagName() - b04de68: New API method
addRegex(string $pattern) - 23784cb: Exclude
preandcodeelements from text node obfuscation - eb45b21: Remove the client script tag from the DOM after execution
- 61df875: New method
->debug(bool)to activate debug mode. De-obfuscates the injected frontend script and activates debug logging for it. - 26c7e73: Inject a minified and mangled version of the frontend deobfuscation script by default
- f1475a0: Do not randomize the key anymore... require a key on initialization, instead