From 8352947f5d39a5a5ab51b0c70cdfceb19c52c418 Mon Sep 17 00:00:00 2001 From: Vincent Vanwaelscappel Date: Thu, 15 Jun 2023 18:25:19 +0200 Subject: [PATCH] wait #6046 @0:20 --- src/app/Middleware/EmailObfuscate.php | 20 +++++++++---------- src/public/emailobfuscator/emailobfuscator.js | 12 +++++++++++ 2 files changed, 22 insertions(+), 10 deletions(-) diff --git a/src/app/Middleware/EmailObfuscate.php b/src/app/Middleware/EmailObfuscate.php index f033596..5a902d2 100644 --- a/src/app/Middleware/EmailObfuscate.php +++ b/src/app/Middleware/EmailObfuscate.php @@ -8,10 +8,8 @@ use Illuminate\Contracts\Support\Renderable; use Illuminate\Http\Request; use Illuminate\Http\Response; -class EmailObfuscate extends CubistMiddleware -{ - public function handle(Request $request, Closure $next) - { +class EmailObfuscate extends CubistMiddleware { + public function handle(Request $request, Closure $next) { parent::handle($request, $next); if ($this->onAdmin()) { return $this->getResponse(); @@ -33,20 +31,22 @@ class EmailObfuscate extends CubistMiddleware * @param $content * @return mixed */ - public function obfuscate($content) - { + public function obfuscate($content) { $content = preg_replace_callback('/href="(mailto:)([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)/', [$this, '_replaceMailto'], $content); + $content = preg_replace_callback('/(\w+)="([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)/', [$this, '_replaceAttr'], $content); $content = preg_replace_callback('/([\w-]+(?:\.[\w-]+)*)@((?:[\w-]+\.)*\w[\w-]{0,66})\.([a-z]{2,6}(?:\.[a-z]{2})?)/', [$this, '_replaceEmail'], $content); return $content; } - protected function _replaceMailto($matches) - { + protected function _replaceAttr($matches) { + return 'data-m-class="fdkt5" data-m-content="' . base64_encode($matches[1]) . ':' . base64_encode($matches[2] . "@" . $matches[3] . "." . $matches[4]) . "#hdfr"; + } + + protected function _replaceMailto($matches) { return 'data-m-class="gfo45" data-m-content="a654d5:' . base64_encode($matches[2] . "@" . $matches[3] . "." . $matches[4]) . "#hdfr"; } - protected function _replaceEmail($matches) - { + protected function _replaceEmail($matches) { return ''; } } diff --git a/src/public/emailobfuscator/emailobfuscator.js b/src/public/emailobfuscator/emailobfuscator.js index 5096e5a..b92da57 100644 --- a/src/public/emailobfuscator/emailobfuscator.js +++ b/src/public/emailobfuscator/emailobfuscator.js @@ -9,6 +9,18 @@ document.addEventListener("DOMContentLoaded", function () { e.setAttribute('href', 'mailto:' + email); }); + // fdkt5 + document.querySelectorAll('[data-m-class="fdkt5"]').forEach(function (e) { + var encoded = e.getAttribute('data-m-content'); + var m = /^([a-zA-Z0-9\/\+=]*):([a-zA-Z0-9\/\+=]*)#hdfr$/i.exec(encoded); + if (null === m) { + return; + } + var email = atob(m[2]); + e.setAttribute(atob(m[1]), email); + }); + + document.querySelectorAll('[data-m-class="8fr4g"]').forEach(function (e) { var encoded = e.getAttribute('data-m-content'); var m = /^56548df:([a-zA-Z0-9\/\+=]*)#fde4$/i.exec(encoded); -- 2.39.5