@anonympins/fingerprint 0.7.2 → 0.7.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (41) hide show
  1. package/CHANGELOG.md +36 -9
  2. package/README.md +1 -1
  3. package/package.json +109 -107
  4. package/public/fingerprint-anti-bot.zip +0 -0
  5. package/src/js/fingerprint.client.js +252 -45
  6. package/src/js/fingerprint.client.obfuscated.js +1 -1
  7. package/src/js/fingerprint.js +265 -185
  8. package/src/js/fingerprint.utils.js +32 -5
  9. package/src/js/fingerprint.worker.js +81 -0
  10. package/src/js/library.js +6 -2
  11. package/src/js/pow.solver.js +2 -3
  12. package/src/js/problem-manager.js +113 -113
  13. package/src/js/tests/fingerprint.client.init.test.js +30 -0
  14. package/src/js/tests/fingerprint.test.js +136 -4
  15. package/src/js/tests/threatIntel.test.js +76 -0
  16. package/src/php/AutoTuner.php +36 -18
  17. package/src/php/Challenge/ChallengeUtils.php +121 -240
  18. package/src/php/DirectFingerprint.php +16 -4
  19. package/src/php/FingerprintClient.php +17 -19
  20. package/src/php/FingerprintEngine.php +77 -39
  21. package/src/php/Ja3AnomalyDetector.php +20 -12
  22. package/src/php/Optimization/Optimization.php +5 -1
  23. package/src/php/Optimization/OptimizationOperators.php +5 -1
  24. package/src/php/Optimization/ProblemInitializers.php +16 -4
  25. package/src/php/ProblemManager.php +20 -14
  26. package/src/php/Tests/ChallengeUtilsTest.php +469 -453
  27. package/src/php/Tests/FingerprintEngineTest.php +6 -1
  28. package/src/php/Tests/RequestUtilsTest.php +1 -1
  29. package/src/php/Tests/ThreatIntelTest.php +64 -0
  30. package/src/php/Utils/Env.php +51 -49
  31. package/src/php/Utils/MaliciousPatterns.php +74 -74
  32. package/src/php/Utils/RequestUtils.php +231 -132
  33. package/src/php/WordPress/WpDbStore.php +4 -0
  34. package/src/php/WordPress/{fingerprint-wordpress.php → fingerprint-anti-bot.php} +131 -126
  35. package/src/php/WordPress/languages/fingerprint-wordpress-de_DE.mo +0 -0
  36. package/src/php/WordPress/languages/fingerprint-wordpress-de_DE.po +1 -1
  37. package/src/php/WordPress/languages/fingerprint-wordpress-fr_FR.mo +0 -0
  38. package/src/php/WordPress/languages/fingerprint-wordpress-fr_FR.po +1 -1
  39. package/src/php/WordPress/package.php +6 -3
  40. package/src/php/WordPress/readme.txt +36 -0
  41. package/public/fingerprint-wordpress.zip +0 -0
@@ -20,7 +20,7 @@ $phpSrcDir = $rootDir . '/src/php';
20
20
  $jsSrcDir = $rootDir . '/src/js';
21
21
  $wpDir = $phpSrcDir . '/WordPress';
22
22
  $distDir = $rootDir . '/public';
23
- $pluginSlug = 'fingerprint-wordpress';
23
+ $pluginSlug = 'fingerprint-anti-bot';
24
24
  $buildDir = $distDir . '/' . $pluginSlug;
25
25
  $zipFile = $distDir . '/' . $pluginSlug . '.zip';
26
26
 
@@ -128,8 +128,11 @@ function compilePoToMo(string $poFile, string $moFile): bool {
128
128
  }
129
129
 
130
130
  // 2. Copie des fichiers principaux du plugin WordPress
131
- copy($wpDir . '/fingerprint-wordpress.php', $buildDir . '/fingerprint-wordpress.php');
131
+ copy($wpDir . '/fingerprint-anti-bot.php', $buildDir . '/fingerprint-anti-bot.php');
132
132
  copy($wpDir . '/WpDbStore.php', $buildDir . '/WpDbStore.php');
133
+ if (file_exists($wpDir . '/readme.txt')) {
134
+ copy($wpDir . '/readme.txt', $buildDir . '/readme.txt');
135
+ }
133
136
 
134
137
  // 3. Copie des assets clients nécessaires (solveur PoW)
135
138
  $solverSource = $jsSrcDir . '/pow.solver.inline.js';
@@ -191,7 +194,7 @@ $distIterator = new RecursiveIteratorIterator(
191
194
  foreach ($distIterator as $file) {
192
195
  if (!$file->isDir()) {
193
196
  $filePath = $file->getPathname();
194
- // Préserve le préfixe du dossier racine dans le ZIP : fingerprint-wordpress/...
197
+ // Préserve le préfixe du dossier racine dans le ZIP : fingerprint-anti-bot/...
195
198
  $relativePath = $pluginSlug . '/' . substr($filePath, strlen($buildDir) + 1);
196
199
  $zip->addFile($filePath, str_replace('\\', '/', $relativePath));
197
200
  }
@@ -0,0 +1,36 @@
1
+ === Fingerprint Anti-Bot & Proof-of-Work ===
2
+ Contributors: anonympins
3
+ Tags: bot protection, security, proof of work, firewall, anti scraping
4
+ Requires at least: 5.9
5
+ Tested up to: 7.1
6
+ Requires PHP: 8.0
7
+ Stable tag: 0.7.4
8
+ License: MIT
9
+ License URI: https://opensource.org/licenses/MIT
10
+
11
+ High-performance client-side anti-bot protection and Proof-of-Work challenge verification for WordPress without third-party CAPTCHA.
12
+
13
+ == Description ==
14
+
15
+ Fingerprint Anti-Bot is a high-performance, privacy-friendly bot mitigation engine for WordPress. It combines behavioral telemetry, TLS/HTTP2/QUIC transport inspection (JA3, JA4), passive TCP/IP stack analysis, and asynchronous Proof-of-Work (PoW) verification.
16
+
17
+ = Features =
18
+ * Transparent protection against scrapers, credential stuffers, and inventory scalpers.
19
+ * Multi-layered behavioral analysis (mouse, keystrokes, touch dynamics).
20
+ * Cryptographic Proof-of-Work challenges (CPU and Memory bound) without third-party CAPTCHA cookies or trackers.
21
+ * Prometheus-compatible metrics endpoint for monitoring and observability.
22
+ * Tailored security profiles for Frontend, Admin Area (wp-login), and REST API endpoints.
23
+
24
+ == Installation ==
25
+
26
+ 1. Upload the plugin files to the `/wp-content/plugins/fingerprint-anti-bot` directory, or install the plugin through the WordPress plugins screen directly.
27
+ 2. Activate the plugin through the 'Plugins' screen in WordPress.
28
+ 3. Navigate to **Settings -> Fingerprint Anti-Bot** to review security profiles, threshold adjustments, and Prometheus metrics.
29
+
30
+ == Frequently Asked Questions ==
31
+
32
+ = Does this plugin require an external cloud service? =
33
+ No. All evaluations, challenges, and validations occur directly on your WordPress server and client browser.
34
+
35
+ = Is HTTPS required? =
36
+ HTTPS is strongly recommended. Under unencrypted HTTP, modern browsers disable the Web Cryptography API (`crypto.subtle`), which reduces challenge verification performance.
Binary file