forked from mCaptcha/website
This commit is contained in:
parent
3b7c32902b
commit
5956b0df19
54 changed files with 1755 additions and 109 deletions
4
404.html
4
404.html
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="noindex, follow">
|
||||
<title>404 Page not found - mCaptcha</title>
|
||||
|
@ -140,7 +140,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -184,7 +184,7 @@ Security Advisor</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -238,7 +238,7 @@ at any moment!</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -212,7 +212,7 @@ WebAssembly support.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -218,7 +218,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -234,7 +234,7 @@ installations automatically.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 43 KiB After Width: | Height: | Size: 33 B |
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -250,7 +250,7 @@ OTF.</li>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -216,7 +216,7 @@ development economically sustainable.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -322,7 +322,7 @@ be redacted and published.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -405,7 +405,7 @@ generated proof for 4500000 difficulty(the highest in this test), in under
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -244,7 +244,7 @@ GitHub</a>.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -204,7 +204,7 @@ winners should provide the matching <code>proof</code> to claim their rewards.</
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -175,7 +175,7 @@ addition to the blog to post short updates.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -167,7 +167,7 @@ the <a href="https://matrix.to/#/@realaravinth:matrix.batsense.net">Matrix</a>,
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -220,7 +220,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -152,7 +152,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -118,6 +118,11 @@
|
|||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -238,7 +243,7 @@ is available.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -138,6 +138,8 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="/docs/api/mcaptcha-system/">MCaptcha System Library →</a>
|
||||
|
@ -161,6 +163,8 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
@ -193,7 +197,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -118,6 +118,11 @@
|
|||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -214,7 +219,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -118,6 +118,11 @@
|
|||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -227,7 +232,7 @@ mostly just stylistic/ease of use improvements.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -117,6 +117,11 @@
|
|||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -162,10 +167,10 @@
|
|||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="ms-auto" href="/docs/webmasters/terminology/">
|
||||
<a class="ms-auto" href="/docs/user-manual/cli/">
|
||||
<div class="card my-1">
|
||||
<div class="card-body py-2">
|
||||
Terminology →
|
||||
CLI tool →
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
@ -201,7 +206,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -126,6 +126,8 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="/docs/help/faq/">FAQ →</a>
|
||||
|
@ -155,6 +157,8 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
|
@ -187,7 +191,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -117,6 +117,11 @@
|
|||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -211,7 +216,7 @@ your instance is deployed or setting the equivalent in config.toml:</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -125,6 +125,14 @@
|
|||
|
||||
|
||||
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="/docs/user-manual/cli/">CLI Tool →</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="/docs/webmasters/configuring-difficulty-factor/">Configuring Difficulty Factor →</a>
|
||||
|
@ -205,6 +213,14 @@
|
|||
|
||||
|
||||
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use MCaptcha Without JavaScript →</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="/docs/self-hosting/docker/">Using Docker →</a>
|
||||
|
@ -252,7 +268,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -117,6 +117,11 @@
|
|||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -307,7 +312,7 @@ details.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -117,6 +117,11 @@
|
|||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -282,7 +287,7 @@ details.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -117,6 +117,11 @@
|
|||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -247,7 +252,7 @@ a database instance mcaptcha instance.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -117,6 +117,11 @@
|
|||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link active" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -210,7 +215,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -121,6 +121,8 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="/docs/self-hosting/dependencies/">Database and Cache →</a>
|
||||
|
@ -157,6 +159,8 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="/docs/self-hosting/docker/">Using Docker →</a>
|
||||
|
@ -198,7 +202,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -1,6 +1,13 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<url>
|
||||
<loc>/docs/user-manual/</loc>
|
||||
<lastmod>2023-10-28T01:09:37+05:30</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/docs/help/</loc>
|
||||
<lastmod>2021-07-21T15:49:53+05:30</lastmod>
|
||||
|
@ -29,6 +36,18 @@
|
|||
<priority>0.5</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>/docs/user-manual/cli/</loc>
|
||||
<lastmod>2023-10-28T01:09:37+05:30</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>/docs/user-manual/how-to-mcaptcha-without-js/</loc>
|
||||
<lastmod>2023-10-28T03:16:49+05:30</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
<url>
|
||||
<loc>/docs/help/troubleshooting/</loc>
|
||||
<lastmod>2022-08-01T22:24:30+05:30</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
|
@ -42,7 +61,7 @@
|
|||
</url>
|
||||
<url>
|
||||
<loc>/docs/webmasters/installing-captcha/</loc>
|
||||
<lastmod>2023-10-27T21:39:40+05:30</lastmod>
|
||||
<lastmod>2023-10-28T02:30:28+05:30</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
|
321
docs/user-manual/cli/index.html
Normal file
321
docs/user-manual/cli/index.html
Normal file
|
@ -0,0 +1,321 @@
|
|||
<!doctype html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
<meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
<title>CLI tool - mCaptcha</title>
|
||||
<meta name="description" content="Instructions to install mCaptcha CLI">
|
||||
<link rel="canonical" href="/docs/user-manual/cli/">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:image" content="/icon.png">
|
||||
<meta name="twitter:title" content="CLI tool">
|
||||
<meta name="twitter:description" content="Instructions to install mCaptcha CLI">
|
||||
|
||||
<meta name="twitter:site" content="@">
|
||||
<meta name="twitter:creator" content="@">
|
||||
|
||||
<meta property="og:title" content="CLI tool">
|
||||
<meta property="og:description" content="Instructions to install mCaptcha CLI">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="/docs/user-manual/cli/">
|
||||
|
||||
<meta property="og:image" content="/icon.png"/>
|
||||
<meta property="article:published_time" content="2023-10-27T08:48:45+00:00">
|
||||
<meta property="article:modified_time" content="2023-10-28T01:09:37+05:30">
|
||||
<meta property="og:site_name" content="mCaptcha">
|
||||
|
||||
<meta property="article:publisher" content="https://www.facebook.com/">
|
||||
<meta property="article:author" content="https://www.facebook.com/">
|
||||
<meta property="og:locale" content="en_US">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Home",
|
||||
"item": "\/"
|
||||
},{
|
||||
"@type": "ListItem",
|
||||
"position": 2 ,
|
||||
"name": "Docsuser Manualcli",
|
||||
"item": "\/docsuser-manualcli\/"
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
<meta name="theme-color" content="#fff">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
|
||||
</head>
|
||||
<body class="docs single">
|
||||
|
||||
|
||||
<div class="header-bar fixed-top"></div>
|
||||
<header class="navbar fixed-top navbar-expand-md navbar-light">
|
||||
<div class="container">
|
||||
<input class="menu-btn order-0" type="checkbox" id="menu-btn">
|
||||
<label class="menu-icon d-md-none" for="menu-btn"><span class="navicon"></span></label>
|
||||
<a class="navbar-brand order-1 order-md-0 me-auto" href="/">mCaptcha</a>
|
||||
<button id="mode" class="btn btn-link order-2 order-md-4" type="button" aria-label="Toggle mode">
|
||||
<span class="toggle-dark"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg></span>
|
||||
<span class="toggle-light"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg></span>
|
||||
</button>
|
||||
<ul class="navbar-nav social-nav order-3 order-md-5">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="https://github.com/mCaptcha"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg><span class="ms-2 visually-hidden">GitHub</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="collapse navbar-collapse order-4 order-md-1">
|
||||
<ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class="nav-item">
|
||||
<a class="nav-link" href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/community/">Community</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/contact/">Contact</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/about/">About</a>
|
||||
</li>
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="/docs/webmasters/installing-captcha/">Docs</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="break order-6 d-md-none"></div>
|
||||
<form class="navbar-form flex-grow-1 order-7 order-md-3">
|
||||
<input id="userinput" class="form-control is-search" type="search" placeholder="Search docs..." aria-label="Search docs..." autocomplete="off">
|
||||
<div id="suggestions" class="shadow bg-white rounded"></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="wrap container" role="document">
|
||||
<div class="content">
|
||||
|
||||
<div class="row flex-xl-nowrap">
|
||||
<div class="col-lg-5 col-xl-4 docs-sidebar">
|
||||
<nav class="docs-links" aria-label="Main navigation">
|
||||
<h3>Webmasters</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/webmasters/installing-captcha/">Installing mCaptcha on your website</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/configuring-difficulty-factor/">Configuring Difficulty Factor</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link active" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
<li><a class="docs-link" href="/docs/self-hosting/bare-metal/">Deploy bare metal</a></li>
|
||||
<li><a class="docs-link" href="/docs/self-hosting/docker/">Using Docker</a></li>
|
||||
<li><a class="docs-link" href="/docs/self-hosting/dependencies/">Database and cache</a></li>
|
||||
</ul>
|
||||
<h3>API</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/api/browser/">Browser libraries</a></li>
|
||||
<li><a class="docs-link" href="/docs/api/mcaptcha-system/">mCaptcha System Library</a></li>
|
||||
<li><a class="docs-link" href="/docs/api/pow-sha256/">pow_sha256</a></li>
|
||||
</ul>
|
||||
<h3>Help</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/help/troubleshooting/">Troubleshooting</a></li>
|
||||
<li><a class="docs-link" href="/docs/help/faq/">FAQ</a></li>
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation">
|
||||
<div class="page-links">
|
||||
<h3>On this page</h3>
|
||||
<nav id="TableOfContents">
|
||||
<ul>
|
||||
<li><a href="#install">Install</a>
|
||||
<ul>
|
||||
<li><a href="#cratesio">crates.io</a></li>
|
||||
<li><a href="#pre-compiled-binaries">Pre-compiled binaries</a></li>
|
||||
<li><a href="#build-from-source">Build from source</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><a href="#pass-mcaptcha-challenge">Pass mCaptcha challenge</a>
|
||||
<ul>
|
||||
<li><a href="#from-protected-page-url">From protected page URL</a></li>
|
||||
<li><a href="#widget-url">Widget URL</a></li>
|
||||
<li><a href="#developer-mode-offline">[Developer mode] Offline</a></li>
|
||||
</ul>
|
||||
</li>
|
||||
</ul>
|
||||
</nav>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
<main class="docs-content col-lg-11 col-xl-9 mx-xl-auto">
|
||||
|
||||
<h1>CLI tool</h1>
|
||||
<p class="lead"></p>
|
||||
<p>A CLI tool exists to compute mCaptcha challenges. It can be installed
|
||||
from multiple sources:</p>
|
||||
<h2 id="install">Install<a href="#install" class="anchor" aria-hidden="true">#</a> </h2>
|
||||
<h3 id="cratesio">crates.io<a href="#cratesio" class="anchor" aria-hidden="true">#</a> </h3>
|
||||
<p>The CLI tool is available on, <a href="https://crates.io">crates.io</a>, the Rust
|
||||
language’s package registry. Rust language toolchain is required to
|
||||
install from crates.io, please see <a href="https://rustup.rs">rustup.rs</a> for
|
||||
Instructions to install it.</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>cargo install mcaptcha-cli
|
||||
</span></span></code></pre></div><h3 id="pre-compiled-binaries">Pre-compiled binaries<a href="#pre-compiled-binaries" class="anchor" aria-hidden="true">#</a> </h3>
|
||||
<p>Nightly builds and stable releases are regularly published to
|
||||
<a href="https://dl.mcaptcha.org/mcaptcha/cli">dl.mcaptcha.org</a> for a variety of
|
||||
CPU architectures and operating systems.</p>
|
||||
<ol>
|
||||
<li>Download binary, checksum and GPG signature files</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>wget https://dl.mcaptcha.org/mcaptcha/cli/<span style="color:#ff79c6">{</span>VERSION<span style="color:#ff79c6">}</span>/<span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>wget https://dl.mcaptcha.org/mcaptcha/cli/<span style="color:#ff79c6">{</span>VERSION<span style="color:#ff79c6">}</span>/<span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz.asc
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span>wget https://dl.mcaptcha.org/mcaptcha/cli/<span style="color:#ff79c6">{</span>VERSION<span style="color:#ff79c6">}</span>/<span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz.sha256
|
||||
</span></span></code></pre></div><ol start="2">
|
||||
<li>Verify checksum</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>sha256sum -c <span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz.sha256
|
||||
</span></span></code></pre></div><ol start="3">
|
||||
<li>Download mCaptcha’s GPG release keys and verify GPG signature</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>gpg --keyserver keyserver.ubuntu.com --recv 73DAC973A9ADBB9ADCB5CDC4595A08135BA9FF73
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>gpg --verify <span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz.asc
|
||||
</span></span></code></pre></div><ol start="4">
|
||||
<li>Install Binary</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>tar -xvzf <span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz <span style="color:#ff79c6">&&</span> sudo cp <span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>/mcaptcha-cli /usr/local/bin
|
||||
</span></span></code></pre></div><h3 id="build-from-source">Build from source<a href="#build-from-source" class="anchor" aria-hidden="true">#</a> </h3>
|
||||
<ol>
|
||||
<li>Install Rust tool chain
|
||||
Please see <a href="https://rustup.rs">here</a> for instructions.</li>
|
||||
<li>Download source code</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>git clone https://git.batsense.net/mCaptcha/cli
|
||||
</span></span></code></pre></div><ol start="3">
|
||||
<li>Compile and install</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>cargo build --release <span style="color:#ff79c6">&&</span> sudp cp ./target/release/mcaptcha-cli
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>/usr/local/bin
|
||||
</span></span></code></pre></div><h2 id="pass-mcaptcha-challenge">Pass mCaptcha challenge<a href="#pass-mcaptcha-challenge" class="anchor" aria-hidden="true">#</a> </h2>
|
||||
<p>The CLI tool requires details about the challenge to work on it. The
|
||||
tool can be used in three different modes compute challenge:</p>
|
||||
<ol>
|
||||
<li>Protected Page: Compute mCaptcha challenge for the CAPTCHA at a
|
||||
protected page</li>
|
||||
<li>Widget URL: Compute PoW for captcha at widget URL</li>
|
||||
<li>(Developer mode) Offline: Computes PoW over given CAPTCHA parameters</li>
|
||||
</ol>
|
||||
<h3 id="from-protected-page-url">From protected page URL<a href="#from-protected-page-url" class="anchor" aria-hidden="true">#</a> </h3>
|
||||
<p>The most convenient mode: copy the URL of the webpage which has the
|
||||
mCaptcha widget (example: showcase.mcaptcha.org) and run the CLI tool
|
||||
with it to get an authorization code:
|
||||
Compute challenge using the URL</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>03:39 atm@lab cli ±|feat-parse-webpage ✗|→ mcaptcha-cli protected-page https://showcase.mcaptcha.org/
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>Authorization token: eRAZJiMrW58uDYA1s64Tmwq1u30HutuF
|
||||
</span></span></code></pre></div><h3 id="widget-url">Widget URL<a href="#widget-url" class="anchor" aria-hidden="true">#</a> </h3>
|
||||
<p>If you have the widget URL (will be in format https://mcaptcha.example.org/widget?sitekey=randomstring), it can be used to solve challenge as well:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>Compute PoW by fetching parameters from CAPTCHA URL
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span>Usage: mcaptcha-cli online --url <URL>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5</span><span>Options:
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">6</span><span> -u, --url <URL> URL of the CAPTCHA. Example: https://example.org/widget?sitekey<span style="color:#ff79c6">=</span>foo
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">7</span><span> -h, --help Print <span style="color:#8be9fd;font-style:italic">help</span>
|
||||
</span></span></code></pre></div><p>Example usage:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>13:32 atm@lab cli ±|online ✗|→ mcaptcha-cli online -u https://demo.mcaptcha.org/widget?sitekey<span style="color:#ff79c6">=</span>pHy0AktWyOKuxZDzFfoaewncWecCHo23
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>Authorization token: 3xleN26OctBuVu3X4t6CYyUjErhaxQvz
|
||||
</span></span></code></pre></div><h3 id="developer-mode-offline">[Developer mode] Offline<a href="#developer-mode-offline" class="anchor" aria-hidden="true">#</a> </h3>
|
||||
<p>Useful while debugging mCaptcha configurations, works on raw challenge
|
||||
parameters.</p>
|
||||
<p>Help menu:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>Compute PoW with offline parameters
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span>Usage: mcaptcha-cli offline --salt <SALT> --phrase <PHRASE> --difficulty-factor <DIFFICULTY_FACTOR>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5</span><span>Options:
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">6</span><span> -s, --salt <SALT> Salt with which PoW should be computed
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">7</span><span> -p, --phrase <PHRASE> Phrase over which PoW should be computed
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">8</span><span> -d, --difficulty-factor <DIFFICULTY_FACTOR> Difficulty Factor
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">9</span><span> -h, --help Print <span style="color:#8be9fd;font-style:italic">help</span>
|
||||
</span></span></code></pre></div><p>Example usage:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>13:28 atm@lab cli ±|online|→ mcaptcha-cli offline -s <span style="color:#ff79c6">$(</span>rand 32<span style="color:#ff79c6">)</span> -p <span style="color:#ff79c6">$(</span>rand 32<span style="color:#ff79c6">)</span> -d <span style="color:#bd93f9">50000</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>difficulty: <span style="color:#bd93f9">50000</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span>nonce: <span style="color:#bd93f9">90507</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span>original phrase: f351f333d44b2c6b5bf7f033b065bbb8fb5e9dd153bd402e43ed04425f5a3859
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5</span><span>result: <span style="color:#bd93f9">340276562956196291522979356090220150471</span>
|
||||
</span></span></code></pre></div><p>Where rand is <a href="https://github.com/realaravinth/dotfiles/blob/6fc6c87cc912e17488a35c0d3327ecf393221270/scripts/rand#L20">this</a> script.</p>
|
||||
|
||||
<p class="edit-page"><a href="https://git.batsense.net/mCaptcha/website/blob/master/content/docs/user-manual/cli.md"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"></path></svg>Edit this page on git.batsense.net</a></p>
|
||||
|
||||
<div class="docs-navigation d-flex justify-content-between">
|
||||
|
||||
<a href="/docs/help/faq/">
|
||||
<div class="card my-1">
|
||||
<div class="card-body py-2">
|
||||
← FAQ
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="ms-auto" href="/docs/user-manual/how-to-mcaptcha-without-js/">
|
||||
<div class="card my-1">
|
||||
<div class="card-body py-2">
|
||||
Use mCaptcha without JavaScript →
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer text-muted">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 order-last order-lg-first">
|
||||
<ul class="list-inline">
|
||||
<li class="list-inline-item">Powered by <a href="https://gohugo.io/">Hugo</a>, and <a href="https://getdoks.org/">Doks</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-8 order-first order-lg-last text-lg-end">
|
||||
<ul class="list-inline">
|
||||
<li class="list-inline-item"><a href="/about/">About</a></li>
|
||||
<li class="list-inline-item"><a href="/donate">Donate</a></li>
|
||||
<li class="list-inline-item"><a href="/privacy-policy/">Privacy</a></li>
|
||||
<li class="list-inline-item"><a href="/security">Security</a></li>
|
||||
<li class="list-inline-item"><a href="https://stats.uptimerobot.com/GK7VLFJnBl">Status</a></li>
|
||||
<li class="list-inline-item"><a href="/thanks">Thanks</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
222
docs/user-manual/how-to-mcaptcha-without-js/index.html
Normal file
222
docs/user-manual/how-to-mcaptcha-without-js/index.html
Normal file
|
@ -0,0 +1,222 @@
|
|||
<!doctype html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
<meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
<title>Use mCaptcha without JavaScript - mCaptcha</title>
|
||||
<meta name="description" content="Instructions to solve mCaptcha with JavaScript disabled">
|
||||
<link rel="canonical" href="/docs/user-manual/how-to-mcaptcha-without-js/">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:image" content="/icon.png">
|
||||
<meta name="twitter:title" content="Use mCaptcha without JavaScript">
|
||||
<meta name="twitter:description" content="Instructions to solve mCaptcha with JavaScript disabled">
|
||||
|
||||
<meta name="twitter:site" content="@">
|
||||
<meta name="twitter:creator" content="@">
|
||||
|
||||
<meta property="og:title" content="Use mCaptcha without JavaScript">
|
||||
<meta property="og:description" content="Instructions to solve mCaptcha with JavaScript disabled">
|
||||
<meta property="og:type" content="article">
|
||||
<meta property="og:url" content="/docs/user-manual/how-to-mcaptcha-without-js/">
|
||||
|
||||
<meta property="og:image" content="/icon.png"/>
|
||||
<meta property="article:published_time" content="2023-10-27T08:48:45+00:00">
|
||||
<meta property="article:modified_time" content="2023-10-28T03:16:49+05:30">
|
||||
<meta property="og:site_name" content="mCaptcha">
|
||||
|
||||
<meta property="article:publisher" content="https://www.facebook.com/">
|
||||
<meta property="article:author" content="https://www.facebook.com/">
|
||||
<meta property="og:locale" content="en_US">
|
||||
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Home",
|
||||
"item": "\/"
|
||||
},{
|
||||
"@type": "ListItem",
|
||||
"position": 2 ,
|
||||
"name": "Docsuser Manualhow to Mcaptcha Without Js",
|
||||
"item": "\/docsuser-manualhow-to-mcaptcha-without-js\/"
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
<meta name="theme-color" content="#fff">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
|
||||
</head>
|
||||
<body class="docs single">
|
||||
|
||||
|
||||
<div class="header-bar fixed-top"></div>
|
||||
<header class="navbar fixed-top navbar-expand-md navbar-light">
|
||||
<div class="container">
|
||||
<input class="menu-btn order-0" type="checkbox" id="menu-btn">
|
||||
<label class="menu-icon d-md-none" for="menu-btn"><span class="navicon"></span></label>
|
||||
<a class="navbar-brand order-1 order-md-0 me-auto" href="/">mCaptcha</a>
|
||||
<button id="mode" class="btn btn-link order-2 order-md-4" type="button" aria-label="Toggle mode">
|
||||
<span class="toggle-dark"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg></span>
|
||||
<span class="toggle-light"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg></span>
|
||||
</button>
|
||||
<ul class="navbar-nav social-nav order-3 order-md-5">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="https://github.com/mCaptcha"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg><span class="ms-2 visually-hidden">GitHub</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="collapse navbar-collapse order-4 order-md-1">
|
||||
<ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class="nav-item">
|
||||
<a class="nav-link" href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/community/">Community</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/contact/">Contact</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/about/">About</a>
|
||||
</li>
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="/docs/webmasters/installing-captcha/">Docs</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="break order-6 d-md-none"></div>
|
||||
<form class="navbar-form flex-grow-1 order-7 order-md-3">
|
||||
<input id="userinput" class="form-control is-search" type="search" placeholder="Search docs..." aria-label="Search docs..." autocomplete="off">
|
||||
<div id="suggestions" class="shadow bg-white rounded"></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="wrap container" role="document">
|
||||
<div class="content">
|
||||
|
||||
<div class="row flex-xl-nowrap">
|
||||
<div class="col-lg-5 col-xl-4 docs-sidebar">
|
||||
<nav class="docs-links" aria-label="Main navigation">
|
||||
<h3>Webmasters</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/webmasters/installing-captcha/">Installing mCaptcha on your website</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/configuring-difficulty-factor/">Configuring Difficulty Factor</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link active" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
<li><a class="docs-link" href="/docs/self-hosting/bare-metal/">Deploy bare metal</a></li>
|
||||
<li><a class="docs-link" href="/docs/self-hosting/docker/">Using Docker</a></li>
|
||||
<li><a class="docs-link" href="/docs/self-hosting/dependencies/">Database and cache</a></li>
|
||||
</ul>
|
||||
<h3>API</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/api/browser/">Browser libraries</a></li>
|
||||
<li><a class="docs-link" href="/docs/api/mcaptcha-system/">mCaptcha System Library</a></li>
|
||||
<li><a class="docs-link" href="/docs/api/pow-sha256/">pow_sha256</a></li>
|
||||
</ul>
|
||||
<h3>Help</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/help/troubleshooting/">Troubleshooting</a></li>
|
||||
<li><a class="docs-link" href="/docs/help/faq/">FAQ</a></li>
|
||||
</ul>
|
||||
|
||||
</nav>
|
||||
</div>
|
||||
<nav class="docs-toc d-none d-xl-block col-xl-3" aria-label="Secondary navigation">
|
||||
<div class="page-links">
|
||||
<h3>On this page</h3>
|
||||
<nav id="TableOfContents"></nav>
|
||||
</div>
|
||||
|
||||
</nav>
|
||||
<main class="docs-content col-lg-11 col-xl-9 mx-xl-auto">
|
||||
|
||||
<h1>Use mCaptcha without JavaScript</h1>
|
||||
<p class="lead"></p>
|
||||
<p>To use mCaptcha without JavaScript:</p>
|
||||
<ol>
|
||||
<li>Install mCaptcha CLI too. Please see <a href="./cli">here</a> for instructions.</li>
|
||||
<li>Copy the URL of the protected page</li>
|
||||
<li>Run mCaptcha CLI with that URL:</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>mcapthca-cli protected-page <URL>
|
||||
</span></span></code></pre></div><ol start="4">
|
||||
<li>Copy authorization code and paste it in the form</li>
|
||||
</ol>
|
||||
|
||||
<p class="edit-page"><a href="https://git.batsense.net/mCaptcha/website/blob/master/content/docs/user-manual/how-to-mcaptcha-without-js.md"><svg xmlns="http://www.w3.org/2000/svg" width="16" height="16" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-edit-2"><path d="M17 3a2.828 2.828 0 1 1 4 4L7.5 20.5 2 22l1.5-5.5L17 3z"></path></svg>Edit this page on git.batsense.net</a></p>
|
||||
|
||||
<div class="docs-navigation d-flex justify-content-between">
|
||||
|
||||
<a href="/docs/user-manual/cli/">
|
||||
<div class="card my-1">
|
||||
<div class="card-body py-2">
|
||||
← CLI tool
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
<a class="ms-auto" href="/docs/webmasters/terminology/">
|
||||
<div class="card my-1">
|
||||
<div class="card-body py-2">
|
||||
Terminology →
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
</div>
|
||||
|
||||
</main>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer text-muted">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 order-last order-lg-first">
|
||||
<ul class="list-inline">
|
||||
<li class="list-inline-item">Powered by <a href="https://gohugo.io/">Hugo</a>, and <a href="https://getdoks.org/">Doks</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-8 order-first order-lg-last text-lg-end">
|
||||
<ul class="list-inline">
|
||||
<li class="list-inline-item"><a href="/about/">About</a></li>
|
||||
<li class="list-inline-item"><a href="/donate">Donate</a></li>
|
||||
<li class="list-inline-item"><a href="/privacy-policy/">Privacy</a></li>
|
||||
<li class="list-inline-item"><a href="/security">Security</a></li>
|
||||
<li class="list-inline-item"><a href="https://stats.uptimerobot.com/GK7VLFJnBl">Status</a></li>
|
||||
<li class="list-inline-item"><a href="/thanks">Thanks</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
197
docs/user-manual/index.html
Normal file
197
docs/user-manual/index.html
Normal file
|
@ -0,0 +1,197 @@
|
|||
<!doctype html>
|
||||
<html lang="en-US">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta http-equiv="x-ua-compatible" content="ie=edge">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
<meta name="bingbot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
<title>User Manual - mCaptcha</title>
|
||||
<meta name="description" content="Introduction to mCaptcha for users">
|
||||
<link rel="canonical" href="/docs/user-manual/">
|
||||
<meta name="twitter:card" content="summary_large_image">
|
||||
<meta name="twitter:image" content="/icon.png">
|
||||
<meta name="twitter:title" content="User Manual">
|
||||
<meta name="twitter:description" content="Introduction to mCaptcha for users">
|
||||
|
||||
<meta name="twitter:site" content="@">
|
||||
<meta name="twitter:creator" content="@">
|
||||
|
||||
<meta property="og:title" content="User Manual">
|
||||
<meta property="og:description" content="Introduction to mCaptcha for users">
|
||||
<meta property="og:type" content="website">
|
||||
<meta property="og:url" content="/docs/user-manual/">
|
||||
|
||||
<meta property="og:image" content="/icon.png"/>
|
||||
<meta property="og:updated_time" content="2023-10-28T01:09:37+05:30">
|
||||
<meta property="og:site_name" content="mCaptcha">
|
||||
|
||||
<meta property="article:publisher" content="https://www.facebook.com/">
|
||||
<meta property="article:author" content="https://www.facebook.com/">
|
||||
<meta property="og:locale" content="en_US">
|
||||
|
||||
<link rel="alternate" type="application/rss+xml" href="/docs/user-manual/index.xml">
|
||||
<link rel="sitemap" type="application/xml" href="/docs/user-manual/sitemap.xml">
|
||||
<script type="application/ld+json">
|
||||
{
|
||||
"@context": "http://schema.org",
|
||||
"@type": "BreadcrumbList",
|
||||
"itemListElement": [{
|
||||
"@type": "ListItem",
|
||||
"position": 1 ,
|
||||
"name": "Home",
|
||||
"item": "\/"
|
||||
},{
|
||||
"@type": "ListItem",
|
||||
"position": 2 ,
|
||||
"name": "Docsuser Manual",
|
||||
"item": "\/docsuser-manual\/"
|
||||
}]
|
||||
}
|
||||
</script>
|
||||
|
||||
<meta name="theme-color" content="#fff">
|
||||
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
|
||||
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
|
||||
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
|
||||
<link rel="manifest" href="/site.webmanifest">
|
||||
|
||||
</head>
|
||||
<body class="docs list">
|
||||
|
||||
|
||||
<div class="header-bar fixed-top"></div>
|
||||
<header class="navbar fixed-top navbar-expand-md navbar-light">
|
||||
<div class="container">
|
||||
<input class="menu-btn order-0" type="checkbox" id="menu-btn">
|
||||
<label class="menu-icon d-md-none" for="menu-btn"><span class="navicon"></span></label>
|
||||
<a class="navbar-brand order-1 order-md-0 me-auto" href="/">mCaptcha</a>
|
||||
<button id="mode" class="btn btn-link order-2 order-md-4" type="button" aria-label="Toggle mode">
|
||||
<span class="toggle-dark"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-moon"><path d="M21 12.79A9 9 0 1 1 11.21 3 7 7 0 0 0 21 12.79z"></path></svg></span>
|
||||
<span class="toggle-light"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-sun"><circle cx="12" cy="12" r="5"></circle><line x1="12" y1="1" x2="12" y2="3"></line><line x1="12" y1="21" x2="12" y2="23"></line><line x1="4.22" y1="4.22" x2="5.64" y2="5.64"></line><line x1="18.36" y1="18.36" x2="19.78" y2="19.78"></line><line x1="1" y1="12" x2="3" y2="12"></line><line x1="21" y1="12" x2="23" y2="12"></line><line x1="4.22" y1="19.78" x2="5.64" y2="18.36"></line><line x1="18.36" y1="5.64" x2="19.78" y2="4.22"></line></svg></span>
|
||||
</button>
|
||||
<ul class="navbar-nav social-nav order-3 order-md-5">
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="https://github.com/mCaptcha"><svg xmlns="http://www.w3.org/2000/svg" width="20" height="20" viewBox="0 0 24 24" fill="none" stroke="currentColor" stroke-width="2" stroke-linecap="round" stroke-linejoin="round" class="feather feather-github"><path d="M9 19c-5 1.5-5-2.5-7-3m14 6v-3.87a3.37 3.37 0 0 0-.94-2.61c3.14-.35 6.44-1.54 6.44-7A5.44 5.44 0 0 0 20 4.77 5.07 5.07 0 0 0 19.91 1S18.73.65 16 2.48a13.38 13.38 0 0 0-7 0C6.27.65 5.09 1 5.09 1A5.07 5.07 0 0 0 5 4.77a5.44 5.44 0 0 0-1.5 3.78c0 5.42 3.3 6.61 6.44 7A3.37 3.37 0 0 0 9 18.13V22"></path></svg><span class="ms-2 visually-hidden">GitHub</span></a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="collapse navbar-collapse order-4 order-md-1">
|
||||
<ul class="navbar-nav main-nav me-auto order-5 order-md-2"><li class="nav-item">
|
||||
<a class="nav-link" href="/blog/">Blog</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/community/">Community</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/contact/">Contact</a>
|
||||
</li>
|
||||
<li class="nav-item">
|
||||
<a class="nav-link" href="/about/">About</a>
|
||||
</li>
|
||||
<li class="nav-item active">
|
||||
<a class="nav-link" href="/docs/webmasters/installing-captcha/">Docs</a>
|
||||
</li>
|
||||
</ul>
|
||||
<div class="break order-6 d-md-none"></div>
|
||||
<form class="navbar-form flex-grow-1 order-7 order-md-3">
|
||||
<input id="userinput" class="form-control is-search" type="search" placeholder="Search docs..." aria-label="Search docs..." autocomplete="off">
|
||||
<div id="suggestions" class="shadow bg-white rounded"></div>
|
||||
</form>
|
||||
</div>
|
||||
</div>
|
||||
</header>
|
||||
|
||||
<div class="wrap container" role="document">
|
||||
<div class="content">
|
||||
|
||||
<div class="row justify-content-center">
|
||||
<div class="col-md-12 col-lg-10 col-xl-8">
|
||||
<article>
|
||||
<h1 class="text-center">User Manual</h1>
|
||||
<div class="text-center"></div>
|
||||
<div class="card-list">
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="/docs/user-manual/cli/">CLI Tool →</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use MCaptcha Without JavaScript →</a>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
</div>
|
||||
</article>
|
||||
</div>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
</div>
|
||||
|
||||
|
||||
<footer class="footer text-muted">
|
||||
<div class="container">
|
||||
<div class="row">
|
||||
<div class="col-lg-8 order-last order-lg-first">
|
||||
<ul class="list-inline">
|
||||
<li class="list-inline-item">Powered by <a href="https://gohugo.io/">Hugo</a>, and <a href="https://getdoks.org/">Doks</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
<div class="col-lg-8 order-first order-lg-last text-lg-end">
|
||||
<ul class="list-inline">
|
||||
<li class="list-inline-item"><a href="/about/">About</a></li>
|
||||
<li class="list-inline-item"><a href="/donate">Donate</a></li>
|
||||
<li class="list-inline-item"><a href="/privacy-policy/">Privacy</a></li>
|
||||
<li class="list-inline-item"><a href="/security">Security</a></li>
|
||||
<li class="list-inline-item"><a href="https://stats.uptimerobot.com/GK7VLFJnBl">Status</a></li>
|
||||
<li class="list-inline-item"><a href="/thanks">Thanks</a></li>
|
||||
</ul>
|
||||
</div>
|
||||
</div>
|
||||
</div>
|
||||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
32
docs/user-manual/index.xml
Normal file
32
docs/user-manual/index.xml
Normal file
|
@ -0,0 +1,32 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes"?>
|
||||
<rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
|
||||
<channel>
|
||||
<title>User Manual on </title>
|
||||
<link>/docs/user-manual/</link>
|
||||
<description>Recent content in User Manual on </description>
|
||||
<generator>Hugo -- gohugo.io</generator>
|
||||
<language>en-US</language>
|
||||
<lastBuildDate>Fri, 27 Oct 2023 08:48:45 +0000</lastBuildDate><atom:link href="/docs/user-manual/index.xml" rel="self" type="application/rss+xml" />
|
||||
<item>
|
||||
<title>CLI tool</title>
|
||||
<link>/docs/user-manual/cli/</link>
|
||||
<pubDate>Fri, 27 Oct 2023 08:48:45 +0000</pubDate>
|
||||
|
||||
<guid>/docs/user-manual/cli/</guid>
|
||||
<description>A CLI tool exists to compute mCaptcha challenges. It can be installed from multiple sources:
|
||||
Install crates.io The CLI tool is available on, crates.io, the Rust language&rsquo;s package registry. Rust language toolchain is required to install from crates.io, please see rustup.rs for Instructions to install it.
|
||||
1cargo install mcaptcha-cli Pre-compiled binaries Nightly builds and stable releases are regularly published to dl.mcaptcha.org for a variety of CPU architectures and operating systems.</description>
|
||||
</item>
|
||||
|
||||
<item>
|
||||
<title>Use mCaptcha without JavaScript</title>
|
||||
<link>/docs/user-manual/how-to-mcaptcha-without-js/</link>
|
||||
<pubDate>Fri, 27 Oct 2023 08:48:45 +0000</pubDate>
|
||||
|
||||
<guid>/docs/user-manual/how-to-mcaptcha-without-js/</guid>
|
||||
<description>To use mCaptcha without JavaScript:
|
||||
Install mCaptcha CLI too. Please see here for instructions. Copy the URL of the protected page Run mCaptcha CLI with that URL: 1mcapthca-cli protected-page &lt;URL&gt; Copy authorization code and paste it in the form </description>
|
||||
</item>
|
||||
|
||||
</channel>
|
||||
</rss>
|
17
docs/user-manual/sitemap.xml
Normal file
17
docs/user-manual/sitemap.xml
Normal file
|
@ -0,0 +1,17 @@
|
|||
<?xml version="1.0" encoding="utf-8" standalone="yes" ?><urlset xmlns="http://www.sitemaps.org/schemas/sitemap/0.9"
|
||||
xmlns:xhtml="http://www.w3.org/1999/xhtml">
|
||||
|
||||
<url>
|
||||
<loc>/docs/user-manual/cli/</loc>
|
||||
<lastmod>2023-10-28T01:09:37+05:30</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/docs/user-manual/how-to-mcaptcha-without-js/</loc>
|
||||
<lastmod>2023-10-28T03:16:49+05:30</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
</urlset>
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -118,6 +118,11 @@
|
|||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -250,7 +255,7 @@ underlying website.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -118,6 +118,11 @@
|
|||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link active" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -223,7 +228,7 @@ clipboard.</li>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -120,6 +120,8 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="/docs/webmasters/configuring-difficulty-factor/">Configuring Difficulty Factor →</a>
|
||||
|
@ -160,6 +162,8 @@
|
|||
|
||||
|
||||
|
||||
|
||||
|
||||
<div class="card my-3">
|
||||
<div class="card-body">
|
||||
<a class="stretched-link" href="/docs/webmasters/faq/">Webmasters FAQ →</a>
|
||||
|
@ -199,7 +203,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -29,7 +29,7 @@
|
|||
|
||||
<meta property="og:image" content="/icon.png"/>
|
||||
<meta property="article:published_time" content="2022-06-22T00:00:00+00:00">
|
||||
<meta property="article:modified_time" content="2023-10-27T21:39:40+05:30">
|
||||
<meta property="article:modified_time" content="2023-10-28T02:30:28+05:30">
|
||||
<meta property="og:site_name" content="mCaptcha">
|
||||
|
||||
<meta property="article:publisher" content="https://www.facebook.com/">
|
||||
|
@ -118,6 +118,11 @@
|
|||
<li><a class="docs-link" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -219,16 +224,20 @@ mCaptcha on your website:</p>
|
|||
will load the mCaptcha widget with the configuration supplied. Be sure
|
||||
to replace <code>Your {{paste your widget link}}</code> with the link obtained from
|
||||
the previous step.</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-html" data-lang="html"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1</span><span><<span style="color:#ff79c6">div</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"mcaptcha__widget-container"</span>></<span style="color:#ff79c6">div</span>>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2</span><span><<span style="color:#ff79c6">script</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"https://unpkg.com/@mcaptcha/vanilla-glue@0.1.0-alpha-2/dist/index.js"</span>></<span style="color:#ff79c6">script</span>>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3</span><span><<span style="color:#ff79c6">script</span> <span style="color:#50fa7b">charset</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"utf-8"</span>>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4</span><span> <span style="color:#8be9fd;font-style:italic">let</span> config <span style="color:#ff79c6">=</span> {
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5</span><span> widgetLink<span style="color:#ff79c6">:</span> <span style="color:#ff79c6">new</span> URL(
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6</span><span> {{paste yout widget link}}
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7</span><span> ),
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8</span><span> };
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9</span><span> <span style="color:#ff79c6">new</span> mcaptchaGlue.<span style="color:#ff79c6">default</span>(config);
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10</span><span></<span style="color:#ff79c6">script</span>>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-html" data-lang="html"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1</span><span><<span style="color:#ff79c6">label</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2</span><span> <span style="color:#50fa7b">data-mcaptcha_url</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"{{paste your widget link here}}"</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3</span><span> <span style="color:#50fa7b">for</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"mcaptcha__token"</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4</span><span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"mcaptcha__token-label"</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5</span><span>>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6</span><span> mCaptcha authorization token.
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7</span><span> <<span style="color:#ff79c6">a</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8</span><span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"https://mcaptcha.org/docs/user-manual/how-to-mcaptcha-without-js/"</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9</span><span> >Instructions</<span style="color:#ff79c6">a</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10</span><span> >.
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11</span><span> <<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"text"</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"mcaptcha__token"</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"mcaptcha__token"</span> />
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12</span><span></<span style="color:#ff79c6">label</span>>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13</span><span><<span style="color:#ff79c6">div</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"mcaptcha__widget-container"</span>></<span style="color:#ff79c6">div</span>>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14</span><span><<span style="color:#ff79c6">script</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"https://unpkg.com/@mcaptcha/vanilla-glue@0.1.0-rc2/dist/index.js"</span>></<span style="color:#ff79c6">script</span>>
|
||||
</span></span></code></pre></div><p>A full example is available
|
||||
<a href="https://github.com/mCaptcha/glue/blob/ea576d875457de54d82bed3edfc4ee68302fa4d8/packages/vanilla/static/embeded.html">here</a>.</p>
|
||||
<h2 id="5-configure-backend-to-authenticate-captcha-tokens">5. Configure backend to authenticate CAPTCHA tokens<a href="#5-configure-backend-to-authenticate-captcha-tokens" class="anchor" aria-hidden="true">#</a> </h2>
|
||||
|
@ -308,7 +317,7 @@ Web example</a>.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
Binary file not shown.
Before Width: | Height: | Size: 30 KiB After Width: | Height: | Size: 33 B |
|
@ -3,7 +3,7 @@
|
|||
|
||||
<url>
|
||||
<loc>/docs/webmasters/installing-captcha/</loc>
|
||||
<lastmod>2023-10-27T21:39:40+05:30</lastmod>
|
||||
<lastmod>2023-10-28T02:30:28+05:30</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -118,6 +118,11 @@
|
|||
<li><a class="docs-link active" href="/docs/webmasters/terminology/">Terminology</a></li>
|
||||
<li><a class="docs-link" href="/docs/webmasters/faq/">Webmasters FAQ</a></li>
|
||||
</ul>
|
||||
<h3>User Manual</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/user-manual/cli/">CLI tool</a></li>
|
||||
<li><a class="docs-link" href="/docs/user-manual/how-to-mcaptcha-without-js/">Use mCaptcha without JavaScript</a></li>
|
||||
</ul>
|
||||
<h3>Self-Hosting</h3>
|
||||
<ul class="list-unstyled">
|
||||
<li><a class="docs-link" href="/docs/self-hosting/getting-started/">Getting started</a></li>
|
||||
|
@ -246,10 +251,10 @@ the amount of traffic that was served in the cool down period specified.</p>
|
|||
|
||||
<div class="docs-navigation d-flex justify-content-between">
|
||||
|
||||
<a href="/docs/help/faq/">
|
||||
<a href="/docs/user-manual/how-to-mcaptcha-without-js/">
|
||||
<div class="card my-1">
|
||||
<div class="card-body py-2">
|
||||
← FAQ
|
||||
← Use mCaptcha without JavaScript
|
||||
</div>
|
||||
</div>
|
||||
</a>
|
||||
|
@ -292,7 +297,7 @@ the amount of traffic that was served in the cool down period specified.</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -177,7 +177,7 @@ WH3ngC8Zi7bUYGUifdXb54Xuz41kcu2pqgGFuAYp3VSh5JsR
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -183,7 +183,7 @@
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -0,0 +1,614 @@
|
|||
var suggestions=document.getElementById("suggestions"),userinput=document.getElementById("userinput");document.addEventListener("keydown",inputFocus);function inputFocus(e){e.keyCode===191&&(e.preventDefault(),userinput.focus()),e.keyCode===27&&(userinput.blur(),suggestions.classList.add("d-none"))}document.addEventListener("click",function(e){var t=suggestions.contains(e.target);t||suggestions.classList.add("d-none")}),document.addEventListener("keydown",suggestionFocus);function suggestionFocus(e){const s=suggestions.querySelectorAll("a"),o=[...s],t=o.indexOf(document.activeElement);let n=0;e.keyCode===38?(e.preventDefault(),n=t>0?t-1:0,s[n].focus()):e.keyCode===40&&(e.preventDefault(),n=t+1<o.length?t+1:t,s[n].focus())}(function(){var e=new FlexSearch({preset:"score",cache:!0,doc:{id:"id",field:["title","description","content"],store:["href","title","description"]}}),n=[{id:0,href:"/docs/webmasters/installing-captcha/",title:"Installing mCaptcha on your website",description:"Interested in deploying mCpatcha? From deploying a self-hosted instance to installing the CAPTCHA on your website, this guide will have you covered!",content:`<p>mCaptcha can protect your website from DDoS attacks. In this guide we’ll
|
||||
explore how to install mCaptcha on your website. The end result will be
|
||||
something like this, on your website:</p>
|
||||
<figure>
|
||||
<img class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/webmasters/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_20x0_resize_box_3.png" data-srcset="/docs/webmasters/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_800x0_resize_box_3.png 800w,/docs/webmasters/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_700x0_resize_box_3.png 700w,/docs/webmasters/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_600x0_resize_box_3.png 600w,/docs/webmasters/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_500x0_resize_box_3.png 500w" width="618" height="669" alt="A registration form with mCaptcha widget installed">
|
||||
<noscript><img class="img-fluid" sizes="100vw" srcset="/docs/webmasters/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_800x0_resize_box_3.png 800w,/docs/webmasters/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_700x0_resize_box_3.png 700w,/docs/webmasters/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_600x0_resize_box_3.png 600w,/docs/webmasters/installing-captcha/mcaptcha-widget-installation-result_hub39801b2a229b4882fd00c2c83dd77fb_28299_500x0_resize_box_3.png 500w" src="/docs/webmasters/installing-captcha/mcaptcha-widget-installation-result.png" width="618" height="669" alt="A registration form with mCaptcha widget installed"></noscript>
|
||||
</figure>
|
||||
<p>For the purpose of this demo, we will be using
|
||||
<a href="https://demo.mcaptcha.org">demo.mcaptcha.org</a>, a demo instance running
|
||||
in @realaravinth’s bedroom(for this same reason, it shouldn’t be used
|
||||
for anything serious)</p>
|
||||
<h2 id="1-create-an-account-and-sign-into-the-mcaptcha-dashboard">1. Create an account and sign into the mCaptcha dashboard</h2>
|
||||
<p>Head over to <a href="https://demo.mcaptcha.org/join">demo.mcaptcha.org</a> and
|
||||
create an account. When ready, sign in.</p>
|
||||
<h2 id="2-create-new-site-key">2. Create new site key</h2>
|
||||
<p>A <a href="/docs/terminology/sitekey/">site key</a> is how a new CAPTCHA is configured within mCaptcha. To create
|
||||
a new site key, click on “New Site” button in the dashboard.</p>
|
||||
<figure>
|
||||
<img class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/webmasters/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_20x0_resize_box_3.png" data-srcset="/docs/webmasters/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_900x0_resize_box_3.png 900w,/docs/webmasters/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_800x0_resize_box_3.png 800w,/docs/webmasters/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_700x0_resize_box_3.png 700w,/docs/webmasters/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_600x0_resize_box_3.png 600w,/docs/webmasters/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_500x0_resize_box_3.png 500w" width="1825" height="857" alt="mCaptcha dashboard with the 'new site key' button highlighted">
|
||||
<noscript><img class="img-fluid" sizes="100vw" srcset="/docs/webmasters/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_900x0_resize_box_3.png 900w,/docs/webmasters/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_800x0_resize_box_3.png 800w,/docs/webmasters/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_700x0_resize_box_3.png 700w,/docs/webmasters/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_600x0_resize_box_3.png 600w,/docs/webmasters/installing-captcha/new-sitekey-btn_hu4dc550a2e568d01f004e26fb8eb1b427_65746_500x0_resize_box_3.png 500w" src="/docs/webmasters/installing-captcha/new-sitekey-btn.png" width="1825" height="857" alt="mCaptcha dashboard with the 'new site key' button highlighted"></noscript>
|
||||
</figure>
|
||||
<p>There are two options to create a new site key, easy and advanced. <strong>We
|
||||
are going to use the easy mode in this tutorial.</strong> If you are interested
|
||||
in learning more about the advance mode, please see <a href="/docs/introduction/configuring-difficulty-factor/#advance-option">here</a>.</p>
|
||||
<blockquote>
|
||||
<h3 id="easy-modedocsintroductionconfiguring-difficulty-factoreasy-option"><a href="/docs/introduction/configuring-difficulty-factor/#easy-option">Easy Mode</a></h3>
|
||||
<p>Easy mode asks a few basic statistics about your website and generates a
|
||||
configuration that should work for your website. Currently, easy mode is
|
||||
guided by assumptions on suitable difficulty factors to protect a
|
||||
website but it will be fine-tuned as mCaptcha sees more deployment.</p>
|
||||
<p>Configuration generated by easy mode can be tweaked later using the
|
||||
advance mode, as you become more familiar with how mCaptcha works.</p>
|
||||
</blockquote>
|
||||
<p>Fill the form and submit it.</p>
|
||||
<figure>
|
||||
<img class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/webmasters/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_20x0_resize_box_3.png" data-srcset="/docs/webmasters/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_900x0_resize_box_3.png 900w,/docs/webmasters/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_800x0_resize_box_3.png 800w,/docs/webmasters/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_700x0_resize_box_3.png 700w,/docs/webmasters/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_600x0_resize_box_3.png 600w,/docs/webmasters/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_500x0_resize_box_3.png 500w" width="720" height="452" alt="mCaptcha dashboard with the 'new site key' form in easy mode, with details filled in">
|
||||
<noscript><img class="img-fluid" sizes="100vw" srcset="/docs/webmasters/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_900x0_resize_box_3.png 900w,/docs/webmasters/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_800x0_resize_box_3.png 800w,/docs/webmasters/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_700x0_resize_box_3.png 700w,/docs/webmasters/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_600x0_resize_box_3.png 600w,/docs/webmasters/installing-captcha/new-sitekey-easy-mode-filled_hu0c237370199481610ab31adaa9c5a5e6_30108_500x0_resize_box_3.png 500w" src="/docs/webmasters/installing-captcha/new-sitekey-easy-mode-filled.png" width="720" height="452" alt="mCaptcha dashboard with the 'new site key' form in easy mode, with details filled in"></noscript>
|
||||
</figure>
|
||||
<h2 id="3-copy-widget-link">3. Copy widget link</h2>
|
||||
<p>Submitting the form will take you to a page where site key configuration
|
||||
can be viewed. “View deployment” link will display CAPTCHA widget with
|
||||
the supplied configuration. Click on it and grab the widget link.</p>
|
||||
<h2 id="4-install-mcaptcha-on-your-website">4. Install mCaptcha on your website</h2>
|
||||
<p>Integration support is available for some frontend JavaScript
|
||||
frameworks. To see full list of supported frameworks, please see
|
||||
<a href="https://github.com/mCaptcha/glue#framework-support">here</a>.</p>
|
||||
<p>There are two options to use the integration library to integrate
|
||||
mCaptcha on your website:</p>
|
||||
<ol>
|
||||
<li>Serve the integration library yourself</li>
|
||||
<li>Use a CDN like unpkg.com</li>
|
||||
</ol>
|
||||
<p>In this tutorial, we’ll be using the CDN.</p>
|
||||
<p><strong>Pasting the following snippet on the page, within the form</strong> that requires to be protected
|
||||
will load the mCaptcha widget with the configuration supplied. Be sure
|
||||
to replace <code>Your {{paste your widget link}}</code> with the link obtained from
|
||||
the previous step.</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-html" data-lang="html"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1</span><span><<span style="color:#ff79c6">label</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2</span><span> <span style="color:#50fa7b">data-mcaptcha_url</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"{{paste your widget link here}}"</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3</span><span> <span style="color:#50fa7b">for</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"mcaptcha__token"</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4</span><span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"mcaptcha__token-label"</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5</span><span>>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6</span><span> mCaptcha authorization token.
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7</span><span> <<span style="color:#ff79c6">a</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8</span><span> <span style="color:#50fa7b">href</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"https://mcaptcha.org/docs/user-manual/how-to-mcaptcha-without-js/"</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9</span><span> >Instructions</<span style="color:#ff79c6">a</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10</span><span> >.
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11</span><span> <<span style="color:#ff79c6">input</span> <span style="color:#50fa7b">type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"text"</span> <span style="color:#50fa7b">name</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"mcaptcha__token"</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"mcaptcha__token"</span> />
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12</span><span></<span style="color:#ff79c6">label</span>>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13</span><span><<span style="color:#ff79c6">div</span> <span style="color:#50fa7b">id</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"mcaptcha__widget-container"</span>></<span style="color:#ff79c6">div</span>>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14</span><span><<span style="color:#ff79c6">script</span> <span style="color:#50fa7b">src</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"https://unpkg.com/@mcaptcha/vanilla-glue@0.1.0-rc2/dist/index.js"</span>></<span style="color:#ff79c6">script</span>>
|
||||
</span></span></code></pre></div><p>A full example is available
|
||||
<a href="https://github.com/mCaptcha/glue/blob/ea576d875457de54d82bed3edfc4ee68302fa4d8/packages/vanilla/static/embeded.html">here</a>.</p>
|
||||
<h2 id="5-configure-backend-to-authenticate-captcha-tokens">5. Configure backend to authenticate CAPTCHA tokens</h2>
|
||||
<ol>
|
||||
<li>
|
||||
<p>Get <a href="/docs/terminology/access-token">access token</a> from the user’s
|
||||
form submission payload. The access token will be associated with a
|
||||
parameter called <code>mcaptcha__token</code>.</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span> mcaptcha_token <span style="color:#ff79c6">=</span> request<span style="color:#ff79c6">.</span>form[<span style="color:#f1fa8c">"mcaptcha__token"</span>]
|
||||
</span></span></code></pre></div></li>
|
||||
<li>
|
||||
<p>Validate access token with mCaptcha instance</p>
|
||||
</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1</span><span>payload <span style="color:#ff79c6">=</span> {
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2</span><span> <span style="color:#f1fa8c">"token"</span>: mcaptcha_token,
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3</span><span> <span style="color:#f1fa8c">"key"</span>: mcaptcha_sitekey, <span style="color:#6272a4"># captcha site key</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4</span><span> <span style="color:#6272a4"># mCaptcha account secret; available in settings</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5</span><span> <span style="color:#f1fa8c">"secret"</span>: mcaptcha_account_secret,
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6</span><span>}
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7</span><span>resp <span style="color:#ff79c6">=</span> requests<span style="color:#ff79c6">.</span>post(
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8</span><span> <span style="color:#f1fa8c">"https://demo.mcaptha.org/api/v1/pow/siteverify"</span>, json<span style="color:#ff79c6">=</span>payload
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9</span><span>)
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10</span><span>resp <span style="color:#ff79c6">=</span> resp<span style="color:#ff79c6">.</span>json()
|
||||
</span></span></code></pre></div><ol start="3">
|
||||
<li>If access token is valid, allow access to protected resource or deny
|
||||
access.</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-python" data-lang="python"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span> <span style="color:#ff79c6">if</span> resp[<span style="color:#f1fa8c">"valid"</span>] <span style="color:#ff79c6">==</span> <span style="color:#ff79c6">False</span>:
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span> <span style="color:#ff79c6">return</span> <span style="color:#f1fa8c">"invalid captcha"</span>, <span style="color:#bd93f9">400</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span> <span style="color:#ff79c6">else</span>:
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span> <span style="color:#ff79c6">return</span> allow_access_to_protected_resource(request<span style="color:#ff79c6">.</span>form)
|
||||
</span></span></code></pre></div><p>Please see here for a complete <a href="https://github.com/mCaptcha/dos/tree/8f2b53ab46d64fa78a8300dc8ce9d78578ffce12/server">Flask example</a> and here for an <a href="https://github.com/mCaptcha/dos/tree/8f2b53ab46d64fa78a8300dc8ce9d78578ffce12/rust-server/demo-server">Actix
|
||||
Web example</a>.</p>
|
||||
<p>Congratulations, mCaptcha is now integrated with your website!</p>
|
||||
`},{id:1,href:"/docs/webmasters/configuring-difficulty-factor/",title:"Configuring Difficulty Factor",description:"mCaptcha has options to configure its proof of work engine behavior, this page explains how to determine difficulty facotrs that work best for your website!",content:`<p>mCaptcha is highly responsive to detecting DDoS attacks. Admins are
|
||||
advised to take advantage of it by setting low <a href="/docs/terminology/difficulty-factor/">difficulty
|
||||
factors</a> for normal traffic levels
|
||||
for their website.</p>
|
||||
<p><strong>Lowest advisable difficulty factor is 5000.</strong></p>
|
||||
<p>For instance, if it is normal for my website to get 2000 requests for
|
||||
every 30 seconds, I will set a <a href="/docs/terminology/cooldown-period">cool
|
||||
down</a> period of 30 seconds and the
|
||||
first level of difficulty configuration will have a <a href="/docs/terminology/visitor-threshold">visitor threshold</a> of 2000 with a
|
||||
difficulty factor of 5000.</p>
|
||||
<p>There are two modes to setting difficulty factor for your website on
|
||||
mCaptcha:</p>
|
||||
<h3 id="easy-option">Easy option</h3>
|
||||
<p>Easy mode asks a few basic statistics about your website and generates a
|
||||
configuration that should work for your website. Currently, easy mode is
|
||||
guided by assumptions on suitable difficulty factors to protect a
|
||||
website but it will be fine-tuned as mCaptcha sees more deployment.</p>
|
||||
<p>Configuration generated by easy mode can be tweaked later using the
|
||||
advance mode, as you become more familiar with how mCaptcha works.</p>
|
||||
<figure>
|
||||
<img class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/webmasters/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_20x0_resize_box_3.png" data-srcset="/docs/webmasters/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_900x0_resize_box_3.png 900w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_800x0_resize_box_3.png 800w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_700x0_resize_box_3.png 700w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_600x0_resize_box_3.png 600w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_500x0_resize_box_3.png 500w" width="720" height="452" alt="new sitekey form in easy mode">
|
||||
<noscript><img class="img-fluid" sizes="100vw" srcset="/docs/webmasters/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_900x0_resize_box_3.png 900w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_800x0_resize_box_3.png 800w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_700x0_resize_box_3.png 700w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_600x0_resize_box_3.png 600w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-easy-mode_hu3f66189ea53484ac6603a2d78fa015c8_26636_500x0_resize_box_3.png 500w" src="/docs/webmasters/configuring-difficulty-factor/new-sitekey-easy-mode.png" width="720" height="452" alt="new sitekey form in easy mode"></noscript>
|
||||
</figure>
|
||||
<h3 id="advance-option">Advance option</h3>
|
||||
<p>Advance mode gives the admin granular control over how mCaptcha behaves
|
||||
on their website. It has options to set the difficulty factor for each
|
||||
level of traffic(or visitor threshold, in mCaptcha speak), fully taking
|
||||
advantage of mCaptcha’s variable difficulty factor feature.</p>
|
||||
<p>For instance, if it is normal for a website to get 200 requests over 30
|
||||
seconds, then setting a very low difficulty factor for a visitor
|
||||
threshold of 200 and a cool down period of 30 seconds will allow the
|
||||
users to pass through without waiting on the CAPTCHA. But if 1000
|
||||
requests over 30 seconds will bring down the service, then the admin can
|
||||
configure increasing levels of difficulty factor of increasing traffic
|
||||
levels, effectively rate limiting its users and protecting the
|
||||
underlying website.</p>
|
||||
<figure>
|
||||
<img class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/webmasters/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_20x0_resize_box_3.png" data-srcset="/docs/webmasters/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_900x0_resize_box_3.png 900w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_800x0_resize_box_3.png 800w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_700x0_resize_box_3.png 700w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_600x0_resize_box_3.png 600w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_500x0_resize_box_3.png 500w" width="720" height="407" alt="new sitekey form in advance mode">
|
||||
<noscript><img class="img-fluid" sizes="100vw" srcset="/docs/webmasters/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_900x0_resize_box_3.png 900w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_800x0_resize_box_3.png 800w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_700x0_resize_box_3.png 700w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_600x0_resize_box_3.png 600w,/docs/webmasters/configuring-difficulty-factor/new-sitekey-adv-mode_huc4867c6295dc4be195d832a52b37239b_23312_500x0_resize_box_3.png 500w" src="/docs/webmasters/configuring-difficulty-factor/new-sitekey-adv-mode.png" width="720" height="407" alt="new sitekey form in advance mode"></noscript>
|
||||
</figure>
|
||||
`},{id:2,href:"/docs/self-hosting/getting-started/",title:"Getting started",description:"Get started with self-hosting mCaptcha",content:`<h2 id="get-started">Get started</h2>
|
||||
<p>There are two main ways to self-host mCaptcha:</p>
|
||||
<ol>
|
||||
<li><a href="./bare-metal">Bare metal</a></li>
|
||||
<li><a href="./docker">With Docker</a></li>
|
||||
</ol>
|
||||
`},{id:3,href:"/docs/self-hosting/bare-metal/",title:"Deploy bare metal",description:"Bare metal deployment is tedious, most of this will be automated with a script in the future.",content:`<h3 id="2-configure">2. Configure</h3>
|
||||
<p>mcaptcha is highly configurable.</p>
|
||||
<p>Configuration is applied/merged in the following order:</p>
|
||||
<ol>
|
||||
<li>path to configuration file passed in via <code>MCAPTCHA_CONFIG</code></li>
|
||||
<li><code>./config/default.toml</code></li>
|
||||
<li><code>/etc/mcaptcha/config.toml</code></li>
|
||||
<li>environment variables.</li>
|
||||
</ol>
|
||||
<h3 id="1-install-postgres-if-you-dont-have-it-already">1. Install postgres if you don’t have it already.</h3>
|
||||
<p>For Debian based distributions:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>sudo apt install postgres
|
||||
</span></span></code></pre></div><h3 id="2-create-new-user-for-running-mcaptcha">2. Create new user for running <code>mcaptcha</code></h3>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>$ sudo useradd -b /srv -m -s /usr/bin/zsh mcaptcha
|
||||
</span></span></code></pre></div><h3 id="3-create-new-user-in-postgres">3. Create new user in Postgres</h3>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>$ sudo -iu postgres <span style="color:#6272a4"># switch to \`postgres\` user</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>$ psql
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span><span style="color:#8be9fd;font-style:italic">postgres</span><span style="color:#ff79c6">=</span><span style="color:#6272a4"># CREATE USER mcaptcha WITH PASSWORD 'my super long password and yes you need single quote\`;</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span>$ createdb -O mcaptcha mcaptcha <span style="color:#6272a4"># create db 'mcaptcha' with 'mcaptcha' as owner</span>
|
||||
</span></span></code></pre></div><h3 id="4-install-and-load-mcaptchacachehttpsgithubcommcaptchacache-module">4. Install and load <a href="https://github.com/mCaptcha/cache"><code>mCaptcha/cache</code></a> module:</h3>
|
||||
<p>See <a href="https://github.com/mCaptcha/cache"><code>mCaptcha/cache</code></a> for more
|
||||
details.</p>
|
||||
<h3 id="4-build-mcaptcha">4. Build <code>mcaptcha</code></h3>
|
||||
<p>To build <code>mcaptcha</code>, you need the following dependencies:</p>
|
||||
<ol>
|
||||
<li>rust</li>
|
||||
<li>node(<code>v14.16.0</code>)</li>
|
||||
<li>yarn(JavaScript package manager)</li>
|
||||
<li>make</li>
|
||||
</ol>
|
||||
<h2 id="how-to-build">How to build</h2>
|
||||
<ol>
|
||||
<li>Install Cargo using <a href="https://rustup.rs/">rustup</a> with:</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>$ curl --proto <span style="color:#f1fa8c">'=https'</span> --tlsv1.2 -sSf https://sh.rustup.rs | sh
|
||||
</span></span></code></pre></div><ol start="2">
|
||||
<li>
|
||||
<p>Install node(<code>v14.16.0</code>)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Install yarn(JavaScript package manager)</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Build with make:</p>
|
||||
</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>$ make dev-env <span style="color:#ff79c6">&&</span> <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span><span style="color:#f1fa8c"></span> make release
|
||||
</span></span></code></pre></div><h3 id="5-install-package">5. Install package:</h3>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>$ sudo cp ./target/release/mcaptcha /usr/bin/ <span style="color:#ff79c6">&&</span> <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span><span style="color:#f1fa8c"></span> mkdir sudo /etc/mcaptcha <span style="color:#ff79c6">&&</span> <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span><span style="color:#f1fa8c"></span> sudo cp config/default.toml /etc/mcaptcha/config.toml
|
||||
</span></span></code></pre></div><h3 id="6-systemd-service-configuration">6. Systemd service configuration:</h3>
|
||||
<ol>
|
||||
<li>Copy the following to <code>/etc/systemd/system/mcaptcha.service</code>:</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-systemd" data-lang="systemd"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 1</span><span><span style="color:#ff79c6">[Unit]</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 2</span><span><span style="color:#50fa7b">Description</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">mCaptcha: a CAPTCHA system that gives attackers a run for their money</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 3</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 4</span><span><span style="color:#ff79c6">[Service]</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 5</span><span><span style="color:#50fa7b">Type</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">simple</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 6</span><span><span style="color:#50fa7b">User</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">mcaptcha</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 7</span><span><span style="color:#50fa7b">ExecStart</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">/usr/bin/mcaptcha</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 8</span><span><span style="color:#50fa7b">Restart</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">on-failure</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f"> 9</span><span><span style="color:#50fa7b">RestartSec</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">1</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">10</span><span><span style="color:#50fa7b">SuccessExitStatus</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">3 4</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">11</span><span><span style="color:#50fa7b">RestartForceExitStatus</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">3 4</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">12</span><span><span style="color:#50fa7b">SystemCallArchitectures</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">native</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">13</span><span><span style="color:#50fa7b">MemoryDenyWriteExecute</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">true</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">14</span><span><span style="color:#50fa7b">NoNewPrivileges</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">true</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">15</span><span><span style="color:#50fa7b">Environment</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"RUST_LOG=info"</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">16</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">17</span><span><span style="color:#ff79c6">[Unit]</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">18</span><span><span style="color:#50fa7b">After</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">sound.target</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">19</span><span><span style="color:#50fa7b">Wants</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">network-online.target</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">20</span><span><span style="color:#50fa7b">Wants</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">network-online.target</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">21</span><span><span style="color:#50fa7b">Requires</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">postgresql.service</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">22</span><span><span style="color:#50fa7b">After</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">syslog.target</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">23</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">24</span><span><span style="color:#ff79c6">[Install]</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">25</span><span><span style="color:#50fa7b">WantedBy</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">multi-user.target</span>
|
||||
</span></span></code></pre></div><ol start="2">
|
||||
<li>Enable service:</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>$ sudo systemctl daemon-reload <span style="color:#ff79c6">&&</span> <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span><span style="color:#f1fa8c"></span> sudo systemctl <span style="color:#8be9fd;font-style:italic">enable</span> mcaptcha <span style="color:#ff79c6">&&</span> <span style="color:#f1fa8c">\\ </span><span style="color:#6272a4"># Auto startup during boot</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span> sudo systemctl start mcaptcha
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span><span style="color:#f1fa8c">\`\`</span>
|
||||
</span></span></code></pre></div>`},{id:4,href:"/docs/self-hosting/docker/",title:"Using Docker",description:"Deploy mCaptcha using docker",content:`<h2 id="with-docker">With Docker</h2>
|
||||
<h3 id="1-configure">1. Configure</h3>
|
||||
<p>mcaptcha is highly configurable.</p>
|
||||
<p>Configuration is applied/merged in the following order:</p>
|
||||
<ol>
|
||||
<li>path to configuration file passed in via <code>MCAPTCHA_CONFIG</code></li>
|
||||
<li><code>./config/default.toml</code></li>
|
||||
<li><code>/etc/mcaptcha/config.toml</code></li>
|
||||
<li>environment variables.</li>
|
||||
</ol>
|
||||
<p>See
|
||||
<a href="https://github.com/mCaptcha/mCaptcha/tree/master/docs/CONFIGURATION.md">CONFIGURATION.md</a>
|
||||
for configurable options.</p>
|
||||
<h3 id="2-run-image">2. Run image</h3>
|
||||
<p>If you have already have a Postgres instance running, then:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>docker run -p <host-machine-port>:<port-in-configuration-file> <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span><span style="color:#f1fa8c"></span> --add-host<span style="color:#ff79c6">=</span>database:<database-ip-addrss> <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span><span style="color:#f1fa8c"></span> -e <span style="color:#8be9fd;font-style:italic">RUST_LOG</span><span style="color:#ff79c6">=</span>debug <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span><span style="color:#f1fa8c"></span> -e <span style="color:#8be9fd;font-style:italic">DATABASE_URL</span><span style="color:#ff79c6">=</span><span style="color:#f1fa8c">"postgres://<db-user>:<db-password>@database:<db-port>/<db-name>"</span> <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5</span><span><span style="color:#f1fa8c"></span> mcaptcha/mcaptcha:latest
|
||||
</span></span></code></pre></div><p>If you don’t have a Postgres instance running, you can either install
|
||||
one using a package manager or launch one with docker. A <a href="'../docker-compose.yml">docker-compose
|
||||
configuration</a> is available that will launch both
|
||||
a database instance mcaptcha instance.</p>
|
||||
<h2 id="with-docker-compose">With docker-compose</h2>
|
||||
<ol>
|
||||
<li>
|
||||
<p>Follow steps above to build docker image.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Set database password <a href="'../docker-compose.yml">docker-compose configuration</a>.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>Launch network</p>
|
||||
</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>docker-compose up -d
|
||||
</span></span></code></pre></div>`},{id:5,href:"/docs/self-hosting/dependencies/",title:"Database and cache",description:"mCaptcha server requires dependencies like a Postgres database and a Redis cache",content:`<h2 id="notes">Notes</h2>
|
||||
<h3 id="database">Database</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<p>Database migrations are baked into the server binary so don’t worry
|
||||
about them.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>When compiling from source, unset database configuration(comment out
|
||||
database configuration/ <code>unset</code> relevant environment variables).
|
||||
<code>mCaptcha</code> uses <a href="https://crates.io/crates/sqlx"><code>sqlx</code></a> database client
|
||||
library which checks SQL queries at compile time. So if you are starting
|
||||
with a fresh database without migrations applied, compilation will fail.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h3 id="redis">Redis</h3>
|
||||
<ul>
|
||||
<li>
|
||||
<p>Redis is an optional dependency. Currently, the non-Redis configuration
|
||||
doesn’t persist CAPTCHA heat. So if there’s a systems failure, CAPTCHA
|
||||
heat will be reset and visitor count will start from 0. For small
|
||||
installations, this should post a problem as heat is short lived and is
|
||||
reset anyways at cool down period.</p>
|
||||
</li>
|
||||
<li>
|
||||
<p>mCaptcha uses a custom Redis module called
|
||||
<a href="https://github.com/mCaptcha/cache">cache</a> to overcome some of Redis'
|
||||
limitations.</p>
|
||||
</li>
|
||||
</ul>
|
||||
<h2 id="instructions">Instructions</h2>
|
||||
<p>Once again, there are two ways to go about this:</p>
|
||||
<ol>
|
||||
<li>Docker</li>
|
||||
<li>Bare metal</li>
|
||||
</ol>
|
||||
<h3 id="docker">Docker</h3>
|
||||
<h3 id="database-1">Database</h3>
|
||||
<p>Download and run Postgres</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>docker create --name mcaptcha-postgres <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span><span style="color:#f1fa8c"></span> -e <span style="color:#8be9fd;font-style:italic">POSTGRES_PASSWORD</span><span style="color:#ff79c6">=</span><database-password> <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span><span style="color:#f1fa8c"></span> -p 5432:5432 <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span><span style="color:#f1fa8c"></span> postgres <span style="color:#ff79c6">&&</span> docker start mcaptcha-postgres
|
||||
</span></span></code></pre></div><h3 id="redis-1">Redis</h3>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>docker create --name mcaptcha-cache <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span><span style="color:#f1fa8c"></span> -p 6379:6379 <span style="color:#f1fa8c">\\
|
||||
</span></span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span><span style="color:#f1fa8c"></span> mcaptcha/cache <span style="color:#ff79c6">&&</span> docker start mcaptcha-cache
|
||||
</span></span></code></pre></div><p>See <a href="https://github.com/mCaptcha/cache">mCaptcha/cache</a> for more
|
||||
details.</p>
|
||||
<h3 id="1-install-postgres-if-you-dont-have-it-already">1. Install Postgres if you don’t have it already.</h3>
|
||||
<p>For Debian based distributions:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>sudo apt install postgres
|
||||
</span></span></code></pre></div><h3 id="2-create-new-user-for-running-mcaptcha">2. Create new user for running <code>mCaptcha</code></h3>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>$ sudo useradd -b /srv -m -s /usr/bin/bash mcaptcha
|
||||
</span></span></code></pre></div><h3 id="3-create-new-user-in-postgres">3. Create new user in Postgres</h3>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>$ sudo -iu postgres <span style="color:#6272a4"># switch to \`postgres\` user</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>$ psql
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span><span style="color:#8be9fd;font-style:italic">postgres</span><span style="color:#ff79c6">=</span><span style="color:#6272a4"># CREATE USER mcaptcha WITH PASSWORD 'my super long password and yes you need single quote';</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span>$ createdb -O mcaptcha mcaptcha <span style="color:#6272a4"># create db 'mcaptcha' with 'mcaptcha' as owner</span>
|
||||
</span></span></code></pre></div><h3 id="4-install-mcaptchacachehttpsgithubcommcaptchacache">4. Install <a href="https://github.com/mCaptcha/cache"><code>mCaptcha/cache</code></a></h3>
|
||||
<p>See <a href="https://github.com/mCaptcha/cache"><code>mCaptcha/cache</code></a> for more
|
||||
details.</p>
|
||||
`},{id:6,href:"/docs/help/troubleshooting/",title:"Troubleshooting",description:"Solutions to common problems.",content:`<h2 id="q-i-just-setup-an-instance-but-i-am-unable-to-login">Q: I just setup an instance but I am unable to login</h2>
|
||||
<p>mCaptcha by default is configured to server at <code>localhost</code> hostname. If
|
||||
the instance is deployed at another hostname, please try setting
|
||||
<code>MCAPTCHA_SERVER_DOMAIN</code> environment variable to the hostname at which
|
||||
your instance is deployed or setting the equivalent in config.toml:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-toml" data-lang="toml"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>[server]
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>domain=mydomain
|
||||
</span></span></code></pre></div>`},{id:7,href:"/docs/api/browser/",title:"Browser libraries",description:"API documenttion for mCaptcha WASM library",content:`<p>The browser part of mCaptcha is divided into three components.</p>
|
||||
<ul>
|
||||
<li>Glue code</li>
|
||||
<li>Widget program</li>
|
||||
<li>Proof-of-Work libraries(WebAssembly and JavaScript polyfill)</li>
|
||||
</ul>
|
||||
<h2 id="glue-code">Glue code</h2>
|
||||
<p>This is the code that links mCaptcha with your website’s frontend code.
|
||||
It creates an <code>iframe</code> containing the mCaptcha widget and injects the
|
||||
received verification proof token into a hidden input field.</p>
|
||||
<p>Support is available for various frameworks, see
|
||||
<a href="https://github.com/mCaptcha/glue"><code>mCaptcha/glue</code></a> for the full list.</p>
|
||||
<p>For frameworks without official support, a low-level library,
|
||||
<a href="https://www.npmjs.com/package/@mcaptcha/core-glue"><code>@mcaptcha/core-glue</code></a>,
|
||||
can be used to implement support.</p>
|
||||
<h2 id="widget-program">Widget Program</h2>
|
||||
<p>This part is served by the mCaptcha backend. It fetches PoW config from
|
||||
the backend, generates proof and submits it for verification. If
|
||||
verification is successful, it sends a message containing the
|
||||
verification proof token to the parent window, assuming it’s loaded as
|
||||
an <code>iframe</code>.</p>
|
||||
<ul>
|
||||
<li>Source code:
|
||||
<a href="https://github.com/mCaptcha/mCaptcha/tree/master/templates/widget"><code>mCaptcha/mCaptcha/templates/widget</code></a></li>
|
||||
</ul>
|
||||
<p>WebAssembly library which generates Proofs of Work for mCaptcha systems.</p>
|
||||
<h2 id="proof-of-workpow-library">Proof-of-Work(PoW) library</h2>
|
||||
<p>WebAssembly bindings(<a href="https://github.com/mCaptcha/pow_wasm"><code>mCaptcha/pow_wasm</code></a>) are available for the main rust library(<a href="https://github.com/mCaptcha/pow_sha256"><code>mCaptcha/pow_sha256</code></a>).</p>
|
||||
<p>For browsers without support WebAssembly, a
|
||||
polyfill(<a href="https://github.com/mCaptcha/pow_sha256-polyfill"><code>pow_sha256-polyfill</code></a>)
|
||||
is available.</p>
|
||||
`},{id:8,href:"/docs/api/mcaptcha-system/",title:"mCaptcha System Library",description:"API documenttion for the core Library used in mCaptcha",content:`<p>Documentation for the library used in mCaptcha core.</p>
|
||||
<h2 id="versions">Versions</h2>
|
||||
<ul>
|
||||
<li><a href="https://mcaptcha.github.io/mCaptcha/m_captcha/index.html">master-branch</a></li>
|
||||
<li><a href="/api-docs/m_captcha/0.1.3/m_captcha/index.html">0.1.3</a></li>
|
||||
<li><a href="/api-docs/m_captcha/0.1.2/m_captcha/index.html">0.1.2</a></li>
|
||||
<li><a href="/api-docs/m_captcha/0.1.1/m_captcha/index.html">0.1.1</a></li>
|
||||
<li><a href="/api-docs/m_captcha/0.1.0/m_captcha/index.html">0.1.0</a></li>
|
||||
</ul>
|
||||
`},{id:9,href:"/docs/api/pow-sha256/",title:"pow_sha256",description:"API documenttion for PoW Library used in mCaptcha",content:`<p>Rust crate which generates SHA256 Proofs of Work on serializable datatypes.</p>
|
||||
<p>This is a fork of the <a href="https://github.com/bddap/pow"><code>pow</code> library</a> by
|
||||
<a href="https://github.com/robkorn/pow_sha256">@robkorn</a>) with some new
|
||||
additions. Primary of these being:</p>
|
||||
<ul>
|
||||
<li>PoW datatype now offers a constructor</li>
|
||||
<li>Salt is no longer hard coded into the library, users can provide
|
||||
unique salts.</li>
|
||||
</ul>
|
||||
<p>Other small changes have also been included of various importance but
|
||||
mostly just stylistic/ease of use improvements.</p>
|
||||
<h2 id="versions">Versions</h2>
|
||||
<ul>
|
||||
<li><a href="https://mcaptcha.github.io/pow_sha256/pow_sha256/index.html">master-branch</a></li>
|
||||
<li><a href="/api-docs/pow_sha256/0.2.1/pow_sha256/index.html">0.2.1</a></li>
|
||||
<li><a href="/api-docs/pow_sha256/0.2.0/pow_sha256/index.html">0.2.0</a></li>
|
||||
<li><a href="/api-docs/pow_sha256/0.1.0/pow_sha256/index.html">0.1.0</a></li>
|
||||
</ul>
|
||||
<h2 id="changelog">Changelog</h2>
|
||||
<p>Changelog is available at the project’s
|
||||
<a href="https://github.com/mCaptcha/pow_sha256/blob/master/CHANGELOG.md">repository</a></p>
|
||||
`},{id:10,href:"/docs/help/faq/",title:"FAQ",description:"Answers to frequently asked questions.",content:`<p>Coming soon</p>
|
||||
`},{id:11,href:"/docs/user-manual/cli/",title:"CLI tool",description:"Instructions to install mCaptcha CLI",content:`<p>A CLI tool exists to compute mCaptcha challenges. It can be installed
|
||||
from multiple sources:</p>
|
||||
<h2 id="install">Install</h2>
|
||||
<h3 id="cratesio">crates.io</h3>
|
||||
<p>The CLI tool is available on, <a href="https://crates.io">crates.io</a>, the Rust
|
||||
language’s package registry. Rust language toolchain is required to
|
||||
install from crates.io, please see <a href="https://rustup.rs">rustup.rs</a> for
|
||||
Instructions to install it.</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>cargo install mcaptcha-cli
|
||||
</span></span></code></pre></div><h3 id="pre-compiled-binaries">Pre-compiled binaries</h3>
|
||||
<p>Nightly builds and stable releases are regularly published to
|
||||
<a href="https://dl.mcaptcha.org/mcaptcha/cli">dl.mcaptcha.org</a> for a variety of
|
||||
CPU architectures and operating systems.</p>
|
||||
<ol>
|
||||
<li>Download binary, checksum and GPG signature files</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>wget https://dl.mcaptcha.org/mcaptcha/cli/<span style="color:#ff79c6">{</span>VERSION<span style="color:#ff79c6">}</span>/<span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>wget https://dl.mcaptcha.org/mcaptcha/cli/<span style="color:#ff79c6">{</span>VERSION<span style="color:#ff79c6">}</span>/<span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz.asc
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span>wget https://dl.mcaptcha.org/mcaptcha/cli/<span style="color:#ff79c6">{</span>VERSION<span style="color:#ff79c6">}</span>/<span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz.sha256
|
||||
</span></span></code></pre></div><ol start="2">
|
||||
<li>Verify checksum</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>sha256sum -c <span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz.sha256
|
||||
</span></span></code></pre></div><ol start="3">
|
||||
<li>Download mCaptcha’s GPG release keys and verify GPG signature</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>gpg --keyserver keyserver.ubuntu.com --recv 73DAC973A9ADBB9ADCB5CDC4595A08135BA9FF73
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>gpg --verify <span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz.asc
|
||||
</span></span></code></pre></div><ol start="4">
|
||||
<li>Install Binary</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>tar -xvzf <span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz <span style="color:#ff79c6">&&</span> sudo cp <span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>/mcaptcha-cli /usr/local/bin
|
||||
</span></span></code></pre></div><h3 id="build-from-source">Build from source</h3>
|
||||
<ol>
|
||||
<li>Install Rust tool chain
|
||||
Please see <a href="https://rustup.rs">here</a> for instructions.</li>
|
||||
<li>Download source code</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>git clone https://git.batsense.net/mCaptcha/cli
|
||||
</span></span></code></pre></div><ol start="3">
|
||||
<li>Compile and install</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>cargo build --release <span style="color:#ff79c6">&&</span> sudp cp ./target/release/mcaptcha-cli
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>/usr/local/bin
|
||||
</span></span></code></pre></div><h2 id="pass-mcaptcha-challenge">Pass mCaptcha challenge</h2>
|
||||
<p>The CLI tool requires details about the challenge to work on it. The
|
||||
tool can be used in three different modes compute challenge:</p>
|
||||
<ol>
|
||||
<li>Protected Page: Compute mCaptcha challenge for the CAPTCHA at a
|
||||
protected page</li>
|
||||
<li>Widget URL: Compute PoW for captcha at widget URL</li>
|
||||
<li>(Developer mode) Offline: Computes PoW over given CAPTCHA parameters</li>
|
||||
</ol>
|
||||
<h3 id="from-protected-page-url">From protected page URL</h3>
|
||||
<p>The most convenient mode: copy the URL of the webpage which has the
|
||||
mCaptcha widget (example: showcase.mcaptcha.org) and run the CLI tool
|
||||
with it to get an authorization code:
|
||||
Compute challenge using the URL</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>03:39 atm@lab cli ±|feat-parse-webpage ✗|→ mcaptcha-cli protected-page https://showcase.mcaptcha.org/
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>Authorization token: eRAZJiMrW58uDYA1s64Tmwq1u30HutuF
|
||||
</span></span></code></pre></div><h3 id="widget-url">Widget URL</h3>
|
||||
<p>If you have the widget URL (will be in format https://mcaptcha.example.org/widget?sitekey=randomstring), it can be used to solve challenge as well:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>Compute PoW by fetching parameters from CAPTCHA URL
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span>Usage: mcaptcha-cli online --url <URL>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5</span><span>Options:
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">6</span><span> -u, --url <URL> URL of the CAPTCHA. Example: https://example.org/widget?sitekey<span style="color:#ff79c6">=</span>foo
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">7</span><span> -h, --help Print <span style="color:#8be9fd;font-style:italic">help</span>
|
||||
</span></span></code></pre></div><p>Example usage:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>13:32 atm@lab cli ±|online ✗|→ mcaptcha-cli online -u https://demo.mcaptcha.org/widget?sitekey<span style="color:#ff79c6">=</span>pHy0AktWyOKuxZDzFfoaewncWecCHo23
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>Authorization token: 3xleN26OctBuVu3X4t6CYyUjErhaxQvz
|
||||
</span></span></code></pre></div><h3 id="developer-mode-offline">[Developer mode] Offline</h3>
|
||||
<p>Useful while debugging mCaptcha configurations, works on raw challenge
|
||||
parameters.</p>
|
||||
<p>Help menu:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>Compute PoW with offline parameters
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span>Usage: mcaptcha-cli offline --salt <SALT> --phrase <PHRASE> --difficulty-factor <DIFFICULTY_FACTOR>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5</span><span>Options:
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">6</span><span> -s, --salt <SALT> Salt with which PoW should be computed
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">7</span><span> -p, --phrase <PHRASE> Phrase over which PoW should be computed
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">8</span><span> -d, --difficulty-factor <DIFFICULTY_FACTOR> Difficulty Factor
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">9</span><span> -h, --help Print <span style="color:#8be9fd;font-style:italic">help</span>
|
||||
</span></span></code></pre></div><p>Example usage:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>13:28 atm@lab cli ±|online|→ mcaptcha-cli offline -s <span style="color:#ff79c6">$(</span>rand 32<span style="color:#ff79c6">)</span> -p <span style="color:#ff79c6">$(</span>rand 32<span style="color:#ff79c6">)</span> -d <span style="color:#bd93f9">50000</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>difficulty: <span style="color:#bd93f9">50000</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span>nonce: <span style="color:#bd93f9">90507</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span>original phrase: f351f333d44b2c6b5bf7f033b065bbb8fb5e9dd153bd402e43ed04425f5a3859
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5</span><span>result: <span style="color:#bd93f9">340276562956196291522979356090220150471</span>
|
||||
</span></span></code></pre></div><p>Where rand is <a href="https://github.com/realaravinth/dotfiles/blob/6fc6c87cc912e17488a35c0d3327ecf393221270/scripts/rand#L20">this</a> script.</p>
|
||||
`},{id:12,href:"/docs/user-manual/how-to-mcaptcha-without-js/",title:"Use mCaptcha without JavaScript",description:"Instructions to solve mCaptcha with JavaScript disabled",content:`<p>To use mCaptcha without JavaScript:</p>
|
||||
<ol>
|
||||
<li>Install mCaptcha CLI too. Please see <a href="./cli">here</a> for instructions.</li>
|
||||
<li>Copy the URL of the protected page</li>
|
||||
<li>Run mCaptcha CLI with that URL:</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>mcapthca-cli protected-page <URL>
|
||||
</span></span></code></pre></div><ol start="4">
|
||||
<li>Copy authorization code and paste it in the form</li>
|
||||
</ol>
|
||||
`},{id:13,href:"/docs/user-manual/",title:"User Manual",description:"Introduction to mCaptcha for users",content:""},{id:14,href:"/docs/webmasters/terminology/",title:"Terminology",description:"Information about terminology used in mCaptcha, some of which unique to the project",content:`<h2 id="authorization-token">Authorization token</h2>
|
||||
<p>When a visitor solves the CAPTCHA and sends their solution to an
|
||||
mCaptcha instance, the solution will be verified for correctness. If the
|
||||
solution is correct, mCaptcha will return a single use authorization token.</p>
|
||||
<p>This authorization token should be attached to the visitor’s requited to the
|
||||
protected service and the protected service should validity of the
|
||||
authorization token with the mCaptcha instance and only allow authorization to
|
||||
protected resource if the authorization token is valid.</p>
|
||||
<h2 id="cooldown-period">Cooldown Period</h2>
|
||||
<p>mCaptcha implements leaky bucket algorithm to measure
|
||||
current traffic levels. Cooldown period specifies the leak or the time
|
||||
after which a visitor addition is decremented.</p>
|
||||
<p>For instance, if initial traffic level is 0 and a user visits one
|
||||
second later, the traffic level will be incremented to 1. Now, if the
|
||||
cooldown period is set to 30 seconds, the traffic level will be
|
||||
decremented after 30 seconds. So after 30 seconds, the traffic level will
|
||||
go from 1 to 0.</p>
|
||||
<h2 id="difficulty-factor">Difficulty Factor</h2>
|
||||
<p>Difficulty factor determines the time it takes to solve a CAPTCHA. The
|
||||
higher the difficulty factor, the longer it will take to generate a
|
||||
proof of work for it to solve the CAPTCHA.</p>
|
||||
<p>mCaptcha’s proof of work based mechanism makes it highly accessible to
|
||||
people with special needs but it is important to choose the difficulty factor
|
||||
with care as very high difficulty factors will make the CAPTCHA
|
||||
inaccessible to users on slow devices.</p>
|
||||
<h2 id="sitekey">Sitekey</h2>
|
||||
<p>Site key is a unique identifier associated with CAPTCHA configurations
|
||||
created on mCaptcha. It is required to integrate a CAPTCHA with your
|
||||
website.</p>
|
||||
<h2 id="visitor-threshold">Visitor Threshold</h2>
|
||||
<p>mCaptcha’s variable difficulty factor mechanism requires a website’s traffic
|
||||
statistics be split into levels, so that it can deploy the right
|
||||
difficulty factor for each level.</p>
|
||||
<p>Visitor threshold is used to traffic into levels and mCaptcha accepts a
|
||||
difficulty configuration for each of these levels. When current traffic
|
||||
exceeds a difficulty factor, mCaptcha will increase the difficulty
|
||||
factor to the next configured level.</p>
|
||||
<p>For instance, consider the configuration given below:</p>
|
||||
<ul>
|
||||
<li>Cool down period: 30 seconds</li>
|
||||
</ul>
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Level</th>
|
||||
<th>Difficulty Factor</th>
|
||||
<th>Visitor Threshold</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
<tr>
|
||||
<td>1</td>
|
||||
<td>5,000</td>
|
||||
<td>2,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>2</td>
|
||||
<td>50,000</td>
|
||||
<td>5,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>3</td>
|
||||
<td>500,000</td>
|
||||
<td>10,000</td>
|
||||
</tr>
|
||||
<tr>
|
||||
<td>4</td>
|
||||
<td>5,000,000</td>
|
||||
<td>15,000</td>
|
||||
</tr>
|
||||
</tbody>
|
||||
</table>
|
||||
<p>If the website sees 2,000 requests in a 30 second window, level 1
|
||||
difficulty factor(5,000) will be deployed. If the traffic increases to
|
||||
5,000 requests in a 30 second window, then difficulty factor will be
|
||||
upgraded to level 2(50,000). Likewise 10,000 and 15,000 requests over 30
|
||||
seconds will result in difficulty factor being upgraded to 500,000 and
|
||||
5,000,000 respectively.</p>
|
||||
<p>Visitor threshold is how mCaptcha determines which difficulty factor
|
||||
level to deploy. mCaptcha uses leaky bucket algorithm to keep the
|
||||
visitor threshold constantly updated within the configured cool down
|
||||
period. So, at any given moment the, the current visitor level will be
|
||||
the amount of traffic that was served in the cool down period specified.</p>
|
||||
`},{id:15,href:"/docs/webmasters/faq/",title:"Webmasters FAQ",description:"Frequently asked questions related to using mCaptcha as a webmaster",content:`<h3 id="easy-mode-default-cooldown-period">Easy Mode: Default cooldown period</h3>
|
||||
<p>When configuring mCaptcha in <a href="/docs/webmasters/configuring-difficulty-factor/#easy-option">easy mode</a>, the default cooldown period is set to 30 seconds.</p>
|
||||
<h2 id="how-to-get-site-key-from-dashboard">How to get site key from dashboard?</h2>
|
||||
<ol>
|
||||
<li>Go to “Site keys” on the side panel in the dashboard</li>
|
||||
</ol>
|
||||
<div align=center>
|
||||
<figure>
|
||||
<img class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/webmasters/faq/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_20x0_resize_box_3.png" data-srcset="/docs/webmasters/faq/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_800x0_resize_box_3.png 800w,/docs/webmasters/faq/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_700x0_resize_box_3.png 700w,/docs/webmasters/faq/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_600x0_resize_box_3.png 600w,/docs/webmasters/faq/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_500x0_resize_box_3.png 500w" width="222" height="496" alt="Site key menu option on the dashboard, encircled in red.">
|
||||
<noscript><img class="img-fluid" sizes="100vw" srcset="/docs/webmasters/faq/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_800x0_resize_box_3.png 800w,/docs/webmasters/faq/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_700x0_resize_box_3.png 700w,/docs/webmasters/faq/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_600x0_resize_box_3.png 600w,/docs/webmasters/faq/sitekey-in-dashboard-sidepanel_hu437e619e92d9fef838a97af482e11285_26958_500x0_resize_box_3.png 500w" src="/docs/webmasters/faq/sitekey-in-dashboard-sidepanel.png" width="222" height="496" alt="Site key menu option on the dashboard, encircled in red."></noscript>
|
||||
</figure>
|
||||
</div>
|
||||
<ol start="2">
|
||||
<li>click on the clipboard button to copy the site key to your
|
||||
clipboard.</li>
|
||||
</ol>
|
||||
<figure>
|
||||
<img class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_20x0_resize_box_3.png" data-srcset="/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_900x0_resize_box_3.png 900w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_800x0_resize_box_3.png 800w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_700x0_resize_box_3.png 700w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_600x0_resize_box_3.png 600w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_500x0_resize_box_3.png 500w" width="1825" height="831" alt="Copy site key to clipboard. Clipboard button is highlighted in the photo">
|
||||
<noscript><img class="img-fluid" sizes="100vw" srcset="/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_900x0_resize_box_3.png 900w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_800x0_resize_box_3.png 800w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_700x0_resize_box_3.png 700w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_600x0_resize_box_3.png 600w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_500x0_resize_box_3.png 500w" src="/docs/webmasters/faq/copy-sitekey.png" width="1825" height="831" alt="Copy site key to clipboard. Clipboard button is highlighted in the photo"></noscript>
|
||||
</figure>
|
||||
`},{id:16,href:"/docs/help/",title:"Help",description:"Help mCaptcha.",content:""},{id:17,href:"/docs/webmasters/",title:"Webmasters",description:"Introduction to mCaptcha for webmasters",content:""},{id:18,href:"/docs/api/",title:"API",description:"Documentation for libraries used in mCaptcha",content:""},{id:19,href:"/docs/",title:"mCaptcha",description:"Docs mCaptcha",content:""},{id:20,href:"/docs/self-hosting/",title:"Self-Hosting",description:"Instructions to self-host mCaptcha",content:""}];e.add(n),userinput.addEventListener("input",s,!0),suggestions.addEventListener("click",o,!0);function s(){var n,i=this.value,s=e.search(i,5),o=suggestions.childNodes,r=0,c=s.length;for(suggestions.classList.remove("d-none"),s.forEach(function(e){n=document.createElement("div"),n.innerHTML="<a href><span></span><span></span></a>",a=n.querySelector("a"),t=n.querySelector("span:first-child"),d=n.querySelector("span:nth-child(2)"),a.href=e.href,t.textContent=e.title,d.textContent=e.description,suggestions.appendChild(n)});o.length>c;)suggestions.removeChild(o[r])}function o(){for(;suggestions.lastChild;)suggestions.removeChild(suggestions.lastChild);return!1}})()
|
|
@ -402,7 +402,109 @@ mostly just stylistic/ease of use improvements.</p>
|
|||
<p>Changelog is available at the project’s
|
||||
<a href="https://github.com/mCaptcha/pow_sha256/blob/master/CHANGELOG.md">repository</a></p>
|
||||
`},{id:10,href:"/docs/help/faq/",title:"FAQ",description:"Answers to frequently asked questions.",content:`<p>Coming soon</p>
|
||||
`},{id:11,href:"/docs/webmasters/terminology/",title:"Terminology",description:"Information about terminology used in mCaptcha, some of which unique to the project",content:`<h2 id="authorization-token">Authorization token</h2>
|
||||
`},{id:11,href:"/docs/user-manual/cli/",title:"CLI tool",description:"Instructions to install mCaptcha CLI",content:`<p>A CLI tool exists to compute mCaptcha challenges. It can be installed
|
||||
from multiple sources:</p>
|
||||
<h2 id="install">Install</h2>
|
||||
<h3 id="cratesio">crates.io</h3>
|
||||
<p>The CLI tool is available on, <a href="https://crates.io">crates.io</a>, the Rust
|
||||
language’s package registry. Rust language toolchain is required to
|
||||
install from crates.io, please see <a href="https://rustup.rs">rustup.rs</a> for
|
||||
Instructions to install it.</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>cargo install mcaptcha-cli
|
||||
</span></span></code></pre></div><h3 id="pre-compiled-binaries">Pre-compiled binaries</h3>
|
||||
<p>Nightly builds and stable releases are regularly published to
|
||||
<a href="https://dl.mcaptcha.org/mcaptcha/cli">dl.mcaptcha.org</a> for a variety of
|
||||
CPU architectures and operating systems.</p>
|
||||
<ol>
|
||||
<li>Download binary, checksum and GPG signature files</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>wget https://dl.mcaptcha.org/mcaptcha/cli/<span style="color:#ff79c6">{</span>VERSION<span style="color:#ff79c6">}</span>/<span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>wget https://dl.mcaptcha.org/mcaptcha/cli/<span style="color:#ff79c6">{</span>VERSION<span style="color:#ff79c6">}</span>/<span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz.asc
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span>wget https://dl.mcaptcha.org/mcaptcha/cli/<span style="color:#ff79c6">{</span>VERSION<span style="color:#ff79c6">}</span>/<span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz.sha256
|
||||
</span></span></code></pre></div><ol start="2">
|
||||
<li>Verify checksum</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>sha256sum -c <span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz.sha256
|
||||
</span></span></code></pre></div><ol start="3">
|
||||
<li>Download mCaptcha’s GPG release keys and verify GPG signature</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>gpg --keyserver keyserver.ubuntu.com --recv 73DAC973A9ADBB9ADCB5CDC4595A08135BA9FF73
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>gpg --verify <span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz.asc
|
||||
</span></span></code></pre></div><ol start="4">
|
||||
<li>Install Binary</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>tar -xvzf <span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>.tar.gz <span style="color:#ff79c6">&&</span> sudo cp <span style="color:#ff79c6">{</span>FILENAME<span style="color:#ff79c6">}</span>/mcaptcha-cli /usr/local/bin
|
||||
</span></span></code></pre></div><h3 id="build-from-source">Build from source</h3>
|
||||
<ol>
|
||||
<li>Install Rust tool chain
|
||||
Please see <a href="https://rustup.rs">here</a> for instructions.</li>
|
||||
<li>Download source code</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>git clone https://git.batsense.net/mCaptcha/cli
|
||||
</span></span></code></pre></div><ol start="3">
|
||||
<li>Compile and install</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>cargo build --release <span style="color:#ff79c6">&&</span> sudp cp ./target/release/mcaptcha-cli
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>/usr/local/bin
|
||||
</span></span></code></pre></div><h2 id="pass-mcaptcha-challenge">Pass mCaptcha challenge</h2>
|
||||
<p>The CLI tool requires details about the challenge to work on it. The
|
||||
tool can be used in three different modes compute challenge:</p>
|
||||
<ol>
|
||||
<li>Protected Page: Compute mCaptcha challenge for the CAPTCHA at a
|
||||
protected page</li>
|
||||
<li>Widget URL: Compute PoW for captcha at widget URL</li>
|
||||
<li>(Developer mode) Offline: Computes PoW over given CAPTCHA parameters</li>
|
||||
</ol>
|
||||
<h3 id="from-protected-page-url">From protected page URL</h3>
|
||||
<p>The most convenient mode: copy the URL of the webpage which has the
|
||||
mCaptcha widget (example: showcase.mcaptcha.org) and run the CLI tool
|
||||
with it to get an authorization code:
|
||||
Compute challenge using the URL</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>03:39 atm@lab cli ±|feat-parse-webpage ✗|→ mcaptcha-cli protected-page https://showcase.mcaptcha.org/
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>Authorization token: eRAZJiMrW58uDYA1s64Tmwq1u30HutuF
|
||||
</span></span></code></pre></div><h3 id="widget-url">Widget URL</h3>
|
||||
<p>If you have the widget URL (will be in format https://mcaptcha.example.org/widget?sitekey=randomstring), it can be used to solve challenge as well:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>Compute PoW by fetching parameters from CAPTCHA URL
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span>Usage: mcaptcha-cli online --url <URL>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5</span><span>Options:
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">6</span><span> -u, --url <URL> URL of the CAPTCHA. Example: https://example.org/widget?sitekey<span style="color:#ff79c6">=</span>foo
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">7</span><span> -h, --help Print <span style="color:#8be9fd;font-style:italic">help</span>
|
||||
</span></span></code></pre></div><p>Example usage:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>13:32 atm@lab cli ±|online ✗|→ mcaptcha-cli online -u https://demo.mcaptcha.org/widget?sitekey<span style="color:#ff79c6">=</span>pHy0AktWyOKuxZDzFfoaewncWecCHo23
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>Authorization token: 3xleN26OctBuVu3X4t6CYyUjErhaxQvz
|
||||
</span></span></code></pre></div><h3 id="developer-mode-offline">[Developer mode] Offline</h3>
|
||||
<p>Useful while debugging mCaptcha configurations, works on raw challenge
|
||||
parameters.</p>
|
||||
<p>Help menu:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>Compute PoW with offline parameters
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span>Usage: mcaptcha-cli offline --salt <SALT> --phrase <PHRASE> --difficulty-factor <DIFFICULTY_FACTOR>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5</span><span>Options:
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">6</span><span> -s, --salt <SALT> Salt with which PoW should be computed
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">7</span><span> -p, --phrase <PHRASE> Phrase over which PoW should be computed
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">8</span><span> -d, --difficulty-factor <DIFFICULTY_FACTOR> Difficulty Factor
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">9</span><span> -h, --help Print <span style="color:#8be9fd;font-style:italic">help</span>
|
||||
</span></span></code></pre></div><p>Example usage:</p>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>13:28 atm@lab cli ±|online|→ mcaptcha-cli offline -s <span style="color:#ff79c6">$(</span>rand 32<span style="color:#ff79c6">)</span> -p <span style="color:#ff79c6">$(</span>rand 32<span style="color:#ff79c6">)</span> -d <span style="color:#bd93f9">50000</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">2</span><span>difficulty: <span style="color:#bd93f9">50000</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">3</span><span>nonce: <span style="color:#bd93f9">90507</span>
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">4</span><span>original phrase: f351f333d44b2c6b5bf7f033b065bbb8fb5e9dd153bd402e43ed04425f5a3859
|
||||
</span></span><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">5</span><span>result: <span style="color:#bd93f9">340276562956196291522979356090220150471</span>
|
||||
</span></span></code></pre></div><p>Where rand is <a href="https://github.com/realaravinth/dotfiles/blob/6fc6c87cc912e17488a35c0d3327ecf393221270/scripts/rand#L20">this</a> script.</p>
|
||||
`},{id:12,href:"/docs/user-manual/how-to-mcaptcha-without-js/",title:"Use mCaptcha without JavaScript",description:"Instructions to solve mCaptcha with JavaScript disabled",content:`<p>To use mCaptcha without JavaScript:</p>
|
||||
<ol>
|
||||
<li>Install mCaptcha CLI too. Please see <a href="./cli">here</a> for instructions.</li>
|
||||
<li>Copy the URL of the protected page</li>
|
||||
<li>Run mCaptcha CLI with that URL:</li>
|
||||
</ol>
|
||||
<div class="highlight"><pre tabindex="0" style="color:#f8f8f2;background-color:#282a36;-moz-tab-size:4;-o-tab-size:4;tab-size:4;"><code class="language-bash" data-lang="bash"><span style="display:flex;"><span style="white-space:pre;-webkit-user-select:none;user-select:none;margin-right:0.4em;padding:0 0.4em 0 0.4em;color:#7f7f7f">1</span><span>mcapthca-cli protected-page <URL>
|
||||
</span></span></code></pre></div><ol start="4">
|
||||
<li>Copy authorization code and paste it in the form</li>
|
||||
</ol>
|
||||
`},{id:13,href:"/docs/user-manual/",title:"User Manual",description:"Introduction to mCaptcha for users",content:""},{id:14,href:"/docs/webmasters/terminology/",title:"Terminology",description:"Information about terminology used in mCaptcha, some of which unique to the project",content:`<h2 id="authorization-token">Authorization token</h2>
|
||||
<p>When a visitor solves the CAPTCHA and sends their solution to an
|
||||
mCaptcha instance, the solution will be verified for correctness. If the
|
||||
solution is correct, mCaptcha will return a single use authorization token.</p>
|
||||
|
@ -485,7 +587,7 @@ level to deploy. mCaptcha uses leaky bucket algorithm to keep the
|
|||
visitor threshold constantly updated within the configured cool down
|
||||
period. So, at any given moment the, the current visitor level will be
|
||||
the amount of traffic that was served in the cool down period specified.</p>
|
||||
`},{id:12,href:"/docs/webmasters/faq/",title:"Webmasters FAQ",description:"Frequently asked questions related to using mCaptcha as a webmaster",content:`<h3 id="easy-mode-default-cooldown-period">Easy Mode: Default cooldown period</h3>
|
||||
`},{id:15,href:"/docs/webmasters/faq/",title:"Webmasters FAQ",description:"Frequently asked questions related to using mCaptcha as a webmaster",content:`<h3 id="easy-mode-default-cooldown-period">Easy Mode: Default cooldown period</h3>
|
||||
<p>When configuring mCaptcha in <a href="/docs/webmasters/configuring-difficulty-factor/#easy-option">easy mode</a>, the default cooldown period is set to 30 seconds.</p>
|
||||
<h2 id="how-to-get-site-key-from-dashboard">How to get site key from dashboard?</h2>
|
||||
<ol>
|
||||
|
@ -505,4 +607,4 @@ clipboard.</li>
|
|||
<img class="img-fluid lazyload blur-up" data-sizes="auto" src="/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_20x0_resize_box_3.png" data-srcset="/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_900x0_resize_box_3.png 900w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_800x0_resize_box_3.png 800w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_700x0_resize_box_3.png 700w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_600x0_resize_box_3.png 600w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_500x0_resize_box_3.png 500w" width="1825" height="831" alt="Copy site key to clipboard. Clipboard button is highlighted in the photo">
|
||||
<noscript><img class="img-fluid" sizes="100vw" srcset="/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_900x0_resize_box_3.png 900w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_800x0_resize_box_3.png 800w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_700x0_resize_box_3.png 700w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_600x0_resize_box_3.png 600w,/docs/webmasters/faq/copy-sitekey_huf38748cca91d238810283a1abb694c9a_63890_500x0_resize_box_3.png 500w" src="/docs/webmasters/faq/copy-sitekey.png" width="1825" height="831" alt="Copy site key to clipboard. Clipboard button is highlighted in the photo"></noscript>
|
||||
</figure>
|
||||
`},{id:13,href:"/docs/help/",title:"Help",description:"Help mCaptcha.",content:""},{id:14,href:"/docs/webmasters/",title:"Webmasters",description:"Introduction to mCaptcha for webmasters",content:""},{id:15,href:"/docs/api/",title:"API",description:"Documentation for libraries used in mCaptcha",content:""},{id:16,href:"/docs/",title:"mCaptcha",description:"Docs mCaptcha",content:""},{id:17,href:"/docs/self-hosting/",title:"Self-Hosting",description:"Instructions to self-host mCaptcha",content:""}];e.add(n),userinput.addEventListener("input",s,!0),suggestions.addEventListener("click",o,!0);function s(){var n,i=this.value,s=e.search(i,5),o=suggestions.childNodes,r=0,c=s.length;for(suggestions.classList.remove("d-none"),s.forEach(function(e){n=document.createElement("div"),n.innerHTML="<a href><span></span><span></span></a>",a=n.querySelector("a"),t=n.querySelector("span:first-child"),d=n.querySelector("span:nth-child(2)"),a.href=e.href,t.textContent=e.title,d.textContent=e.description,suggestions.appendChild(n)});o.length>c;)suggestions.removeChild(o[r])}function o(){for(;suggestions.lastChild;)suggestions.removeChild(suggestions.lastChild);return!1}})()
|
||||
`},{id:16,href:"/docs/help/",title:"Help",description:"Help mCaptcha.",content:""},{id:17,href:"/docs/webmasters/",title:"Webmasters",description:"Introduction to mCaptcha for webmasters",content:""},{id:18,href:"/docs/api/",title:"API",description:"Documentation for libraries used in mCaptcha",content:""},{id:19,href:"/docs/",title:"mCaptcha",description:"Docs mCaptcha",content:""},{id:20,href:"/docs/self-hosting/",title:"Self-Hosting",description:"Instructions to self-host mCaptcha",content:""}];e.add(n),userinput.addEventListener("input",s,!0),suggestions.addEventListener("click",o,!0);function s(){var n,i=this.value,s=e.search(i,5),o=suggestions.childNodes,r=0,c=s.length;for(suggestions.classList.remove("d-none"),s.forEach(function(e){n=document.createElement("div"),n.innerHTML="<a href><span></span><span></span></a>",a=n.querySelector("a"),t=n.querySelector("span:first-child"),d=n.querySelector("span:nth-child(2)"),a.href=e.href,t.textContent=e.title,d.textContent=e.description,suggestions.appendChild(n)});o.length>c;)suggestions.removeChild(o[r])}function o(){for(;suggestions.lastChild;)suggestions.removeChild(suggestions.lastChild);return!1}})()
|
File diff suppressed because one or more lines are too long
File diff suppressed because one or more lines are too long
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -188,7 +188,7 @@ see. This is derived from the User-Agent HTTP header. For example: <em>Chrome</e
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -502,7 +502,7 @@ zKdOEDuIPIv4f7HhhCDCylGwfwqar5XJwnHQrBXLpwlTm4neDsnEOvOzyd8=
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
23
sitemap.xml
23
sitemap.xml
|
@ -67,7 +67,7 @@
|
|||
|
||||
<url>
|
||||
<loc>/docs/webmasters/installing-captcha/</loc>
|
||||
<lastmod>2023-10-27T21:39:40+05:30</lastmod>
|
||||
<lastmod>2023-10-28T02:30:28+05:30</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
@ -142,6 +142,27 @@
|
|||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/docs/user-manual/cli/</loc>
|
||||
<lastmod>2023-10-28T01:09:37+05:30</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/docs/user-manual/how-to-mcaptcha-without-js/</loc>
|
||||
<lastmod>2023-10-28T03:16:49+05:30</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/docs/user-manual/</loc>
|
||||
<lastmod>2023-10-28T01:09:37+05:30</lastmod>
|
||||
<changefreq>weekly</changefreq>
|
||||
<priority>0.5</priority>
|
||||
</url>
|
||||
|
||||
<url>
|
||||
<loc>/docs/webmasters/terminology/</loc>
|
||||
<lastmod>2023-10-27T21:39:40+05:30</lastmod>
|
||||
|
|
|
@ -6,7 +6,7 @@
|
|||
<meta name="viewport" content="width=device-width, initial-scale=1, shrink-to-fit=no">
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-regular.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="preload" as="font" href="/fonts/vendor/jost/jost-v4-latin-700.woff2" type="font/woff2" crossorigin>
|
||||
<link rel="stylesheet" href="/main.976507041017ac4a08ed252c5399a7c72b3b5aeae14bc23dd624cbddb3d2cb6065f6cf8ed6cd96bf5cd21c1157dee4bfdb85b488cb791a49a33af016aa3fcffd.css" integrity="sha512-l2UHBBAXrEoI7SUsU5mnxys7WurhS8I91iTL3bPSy2Bl9s+O1s2Wv1zSHBFX3uS/24W0iMt5GkmjOvAWqj/P/Q==" crossorigin="anonymous">
|
||||
<link rel="stylesheet" href="/main.b63ce50dfa61fad6110b3083ff8c73329c5faa56efa9fce74542ba32665b6f205859f41203427020164409ce1a5ad12d0114f490f7a4b511dc1f99b633255661.css" integrity="sha512-tjzlDfph+tYRCzCD/4xzMpxfqlbvqfznRUK6MmZbbyBYWfQSA0JwIBZECc4aWtEtART0kPektRHcH5m2MyVWYQ==" crossorigin="anonymous">
|
||||
<noscript><style>img.lazyload { display: none; }</style></noscript>
|
||||
<meta name="robots" content="index, follow">
|
||||
<meta name="googlebot" content="index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1">
|
||||
|
@ -189,7 +189,7 @@ their work at:</p>
|
|||
</footer>
|
||||
|
||||
<script src="/main.min.bc2465e4e1abda257c622bf89b85235da437778b3e3f80e01762312382cc27d4e50a8a4de22e464dc82e3a61039da8aef9d6d5e62b76711fa93d9663860b1926.js" integrity="sha512-vCRl5OGr2iV8Yiv4m4UjXaQ3d4s+P4DgF2IxI4LMJ9TlCopN4i5GTcguOmEDnaiu+dbV5it2cR+pPZZjhgsZJg==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.3815062368a85ddb58786a06fadf790751079a4737b79f370db1cf2044c2451d2de7aa39343d73dab0c02899036427f327ddec61ad33c2cebafc3e4e1e8a64dc.js" integrity="sha512-OBUGI2ioXdtYeGoG+t95B1EHmkc3t583DbHPIETCRR0t56o5ND1z2rDAKJkDZCfzJ93sYa0zws66/D5OHopk3A==" crossorigin="anonymous" defer></script>
|
||||
<script src="/index.min.39f65050268d816f7a57ee89577dd6b7c861ed858fdbfd100931444f0bb1609ea23d7d4ddc1997c8401f4553ca412051d7fd12a5b0a675c6053b7d9dc9c2cc98.js" integrity="sha512-OfZQUCaNgW96V+6JV33Wt8hh7YWP2/0QCTFETwuxYJ6iPX1N3BmXyEAfRVPKQSBR1/0SpbCmdcYFO32dycLMmA==" crossorigin="anonymous" defer></script>
|
||||
|
||||
</body>
|
||||
</html>
|
||||
|
|
Loading…
Add table
Reference in a new issue