diff --git a/.hugo_build.lock b/.hugo_build.lock new file mode 100644 index 0000000..e69de29 diff --git a/404.html b/404.html index 15898ae..3f7373e 100644 --- a/404.html +++ b/404.html @@ -44,7 +44,7 @@ },{ "@type": "ListItem", "position": 2 , - "name": "404.Html", + "name": "404.html", "item": "\/404.html\/" }] } @@ -89,7 +89,7 @@ About
@@ -139,8 +139,8 @@ - - + + diff --git a/about/index.html b/about/index.html index a445a9e..5abc0db 100644 --- a/about/index.html +++ b/about/index.html @@ -93,7 +93,7 @@ About
@@ -183,8 +183,8 @@ Security Advisor

- - + + diff --git a/blog/december-2021-monthly-report/index.html b/blog/december-2021-monthly-report/index.html index 3784480..37bcc73 100644 --- a/blog/december-2021-monthly-report/index.html +++ b/blog/december-2021-monthly-report/index.html @@ -92,7 +92,7 @@ About
@@ -237,8 +237,8 @@ at any moment!

- - + + diff --git a/blog/february-2023-monthly-report/index.html b/blog/february-2023-monthly-report/index.html index dddb591..02161f3 100644 --- a/blog/february-2023-monthly-report/index.html +++ b/blog/february-2023-monthly-report/index.html @@ -92,7 +92,7 @@ About
@@ -211,8 +211,8 @@ WebAssembly support.

- - + + diff --git a/blog/index.html b/blog/index.html index 8c97566..ce1c429 100644 --- a/blog/index.html +++ b/blog/index.html @@ -93,7 +93,7 @@ About
@@ -217,8 +217,8 @@ - - + + diff --git a/blog/introducing-mcaptcha-net/index.html b/blog/introducing-mcaptcha-net/index.html index 333a139..7a21bcf 100644 --- a/blog/introducing-mcaptcha-net/index.html +++ b/blog/introducing-mcaptcha-net/index.html @@ -92,7 +92,7 @@ About
@@ -171,9 +171,9 @@ instances.

  • The difficulty factor for which the PoW was computed
  • Type of client library used.
  • -
    1"time":14,
    -2"difficulty_factor":50000,
    -3"worker_type":"wasm"
    +
    1"time":14,
    +2"difficulty_factor":50000,
    +3"worker_type":"wasm"
     

    This doesn’t include the usual fingerprinting parameters like User-Agent, cookies, and IP address. Additionally, we use pseudo IDs at both mCaptcha/mCaptcha and mCaptcha/survey to avoid exposing installations.

    @@ -233,8 +233,8 @@ installations automatically.

    - - + + diff --git a/blog/july-2022-monthly-report/index.html b/blog/july-2022-monthly-report/index.html index 9e9e6d0..9de2bd7 100644 --- a/blog/july-2022-monthly-report/index.html +++ b/blog/july-2022-monthly-report/index.html @@ -92,7 +92,7 @@ About
    @@ -249,8 +249,8 @@ OTF. - - + + diff --git a/blog/june-2022-monthly-report/index.html b/blog/june-2022-monthly-report/index.html index 373d31f..22b8c42 100644 --- a/blog/june-2022-monthly-report/index.html +++ b/blog/june-2022-monthly-report/index.html @@ -92,7 +92,7 @@ About
    @@ -215,8 +215,8 @@ development economically sustainable.

    - - + + diff --git a/blog/may-2022-monthly-report/index.html b/blog/may-2022-monthly-report/index.html index 710c58e..7920851 100644 --- a/blog/may-2022-monthly-report/index.html +++ b/blog/may-2022-monthly-report/index.html @@ -92,7 +92,7 @@ About
    @@ -147,59 +147,59 @@ programs to automatically solve mCaptcha.

    website that is protected by mCaptcha, you can now solve the mCaptcha automatically from within the program.

    Here’s an example:

    -
     1import os
    - 2
    - 3import mcaptcha_pow_py
    - 4import requests
    - 5
    - 6# get the sitekey that is used in the mCaptcha protected form
    - 7SITEKEY = os.getenv("MCAPTCHA_CAPTCHA_SITEKEY")
    - 8# the hostname of the mCaptcha instance that the form is using
    - 9MCAPTCHA_HOST = os.getenv("MCAPTCHA_CAPTCHA_HOST")
    -10
    -11
    -12GET_CONFIG_ROUTE = f"{MCAPTCHA_HOST}/api/v1/pow/config"
    -13VERIFY_POW_ROUTE = f"{MCAPTCHA_HOST}/api/v1/pow/verify"
    -14
    -15def solve_captcha():
    -16
    -17    # get challenge configuration
    -18    key = {"key": sitekey}
    -19    challenge_config = requests.post(GET_CONFIG_ROUTE, json=key)
    -20    challenge_config = challenge_config.json()
    -21
    -22    # extract configuration data
    -23    config = mcaptcha_pow_py.PoWConfig(challenge_config["salt"])
    -24    pow_string = challenge_config["string"]
    -25    pow_difficulty_factor = challenge_config["difficulty_factor"]
    -26
    -27    # generate work
    -28    work = config.work(pow_string, pow_difficulty_factor)
    -29
    -30    # verify PoW
    -31    proof = {
    -32        "key": SITEKEY,
    -33        "nonce": work.nonce,
    -34        "result": work.result,
    -35        "string": challenge_config["string"],
    -36    }
    -37    resp = requests.post(VERIFY_POW_ROUTE, json=proof)
    -38    resp = resp.json()
    -39
    -40    # extract verification token
    -41    token = resp["token"]
    -42
    -43    return token
    -44
    -45
    -46token = solve_captcha()
    -47data = {
    -48    "username": "me",
    -49    "password": "superlongpassword",
    -50    "confirm_password": "superlongpassword",
    -51    "mcaptcha__token": token,
    -52}
    -53response = requests.post("/mCaptcha-protected-form", data=data)
    +
     1import os
    + 2
    + 3import mcaptcha_pow_py
    + 4import requests
    + 5
    + 6# get the sitekey that is used in the mCaptcha protected form
    + 7SITEKEY = os.getenv("MCAPTCHA_CAPTCHA_SITEKEY")
    + 8# the hostname of the mCaptcha instance that the form is using
    + 9MCAPTCHA_HOST = os.getenv("MCAPTCHA_CAPTCHA_HOST")
    +10
    +11
    +12GET_CONFIG_ROUTE = f"{MCAPTCHA_HOST}/api/v1/pow/config"
    +13VERIFY_POW_ROUTE = f"{MCAPTCHA_HOST}/api/v1/pow/verify"
    +14
    +15def solve_captcha():
    +16
    +17    # get challenge configuration
    +18    key = {"key": sitekey}
    +19    challenge_config = requests.post(GET_CONFIG_ROUTE, json=key)
    +20    challenge_config = challenge_config.json()
    +21
    +22    # extract configuration data
    +23    config = mcaptcha_pow_py.PoWConfig(challenge_config["salt"])
    +24    pow_string = challenge_config["string"]
    +25    pow_difficulty_factor = challenge_config["difficulty_factor"]
    +26
    +27    # generate work
    +28    work = config.work(pow_string, pow_difficulty_factor)
    +29
    +30    # verify PoW
    +31    proof = {
    +32        "key": SITEKEY,
    +33        "nonce": work.nonce,
    +34        "result": work.result,
    +35        "string": challenge_config["string"],
    +36    }
    +37    resp = requests.post(VERIFY_POW_ROUTE, json=proof)
    +38    resp = resp.json()
    +39
    +40    # extract verification token
    +41    token = resp["token"]
    +42
    +43    return token
    +44
    +45
    +46token = solve_captcha()
    +47data = {
    +48    "username": "me",
    +49    "password": "superlongpassword",
    +50    "confirm_password": "superlongpassword",
    +51    "mcaptcha__token": token,
    +52}
    +53response = requests.post("/mCaptcha-protected-form", data=data)
     

    This could be missed for building DDoS bots(more on that here) but this could also be used to make CAPTCHA solving automated within screen readers and other @@ -321,8 +321,8 @@ be redacted and published.

    - - + + diff --git a/blog/pow-performance/index.html b/blog/pow-performance/index.html index 5ab385d..10da08d 100644 --- a/blog/pow-performance/index.html +++ b/blog/pow-performance/index.html @@ -92,7 +92,7 @@ About
    @@ -404,8 +404,8 @@ generated proof for 4500000 difficulty(the highest in this test), in under - - + + diff --git a/blog/say-hello-to-mcaptcha/index.html b/blog/say-hello-to-mcaptcha/index.html index 7f259a4..145a64c 100644 --- a/blog/say-hello-to-mcaptcha/index.html +++ b/blog/say-hello-to-mcaptcha/index.html @@ -92,7 +92,7 @@ About
    @@ -243,8 +243,8 @@ GitHub.

    - - + + diff --git a/blog/survey/index.html b/blog/survey/index.html index e2eecd0..1dd93a0 100644 --- a/blog/survey/index.html +++ b/blog/survey/index.html @@ -92,7 +92,7 @@ About
    @@ -203,8 +203,8 @@ winners should provide the matching proof to claim their rewards. - - + + diff --git a/community/index.html b/community/index.html index 1f503c7..aba0ac0 100644 --- a/community/index.html +++ b/community/index.html @@ -93,7 +93,7 @@ About
    @@ -174,8 +174,8 @@ addition to the blog to post short updates.

    - - + + diff --git a/contact/index.html b/contact/index.html index 6f1fd7a..5ba0eef 100644 --- a/contact/index.html +++ b/contact/index.html @@ -93,7 +93,7 @@ About
    @@ -166,8 +166,8 @@ the Matrix, - - + + diff --git a/contributors/aravinth-manivannan/index.html b/contributors/aravinth-manivannan/index.html index 76d74b5..5066b19 100644 --- a/contributors/aravinth-manivannan/index.html +++ b/contributors/aravinth-manivannan/index.html @@ -93,7 +93,7 @@ About
    @@ -219,8 +219,8 @@ - - + + diff --git a/contributors/index.html b/contributors/index.html index 2a461d2..ccc90c8 100644 --- a/contributors/index.html +++ b/contributors/index.html @@ -93,7 +93,7 @@ About
    @@ -151,8 +151,8 @@ - - + + diff --git a/docs/api/browser/index.html b/docs/api/browser/index.html index 0ec3e76..24b30f2 100644 --- a/docs/api/browser/index.html +++ b/docs/api/browser/index.html @@ -93,7 +93,7 @@ About
    @@ -111,25 +111,19 @@
    - - + + diff --git a/docs/api/index.html b/docs/api/index.html index 3413d4a..847a879 100644 --- a/docs/api/index.html +++ b/docs/api/index.html @@ -94,7 +94,7 @@ About
    @@ -118,8 +118,6 @@ - -
    Browser Libraries → @@ -140,10 +138,6 @@ - - - -
    MCaptcha System Library → @@ -198,8 +192,8 @@
    - - + + diff --git a/docs/api/mcaptcha-system/index.html b/docs/api/mcaptcha-system/index.html index 1adddab..521f7af 100644 --- a/docs/api/mcaptcha-system/index.html +++ b/docs/api/mcaptcha-system/index.html @@ -93,7 +93,7 @@ About
    @@ -111,25 +111,19 @@
    - - + + diff --git a/docs/api/pow-sha256/index.html b/docs/api/pow-sha256/index.html index e2f7d78..d6125a5 100644 --- a/docs/api/pow-sha256/index.html +++ b/docs/api/pow-sha256/index.html @@ -93,7 +93,7 @@ About
    @@ -111,25 +111,19 @@
    - - + + diff --git a/docs/help/faq/index.html b/docs/help/faq/index.html index 7443694..20e2cbe 100644 --- a/docs/help/faq/index.html +++ b/docs/help/faq/index.html @@ -92,7 +92,7 @@ About
    @@ -110,25 +110,19 @@ + +
    +
    + Terminology → +
    +
    +
    @@ -199,8 +200,8 @@
    - - + + diff --git a/docs/help/index.html b/docs/help/index.html index d530d5d..e7d7b76 100644 --- a/docs/help/index.html +++ b/docs/help/index.html @@ -94,7 +94,7 @@ About
    @@ -126,12 +126,6 @@ - - - - - -
    FAQ → @@ -192,8 +186,8 @@
    - - + + diff --git a/docs/help/troubleshooting/index.html b/docs/help/troubleshooting/index.html index b84a4fb..2e17baa 100644 --- a/docs/help/troubleshooting/index.html +++ b/docs/help/troubleshooting/index.html @@ -92,7 +92,7 @@ About
    @@ -110,25 +110,19 @@