当reCAPTCHA回调是唯一的函数但不包括其他函数时,可以找到该回调

2022-04-10 00:00:00 recaptcha mongodb javascript html

我正在尝试制作一个不和谐的机器人验证页面,在那里用户可以验证他们不是机器人。我遇到了一个错误,Recaptcha找不到我的recaptchaCallBack函数。当它是唯一的函数时,它会识别它,而当包括其他函数时,它不会识别它。

代码如下:

数据-lang="js"数据-隐藏="假"数据-控制台="真"数据-巴贝尔="假">
import { initializeApp } from "https://www.gstatic.com/firebasejs/9.6.4/firebase-app.js";
            import { getAnalytics } from "https://www.gstatic.com/firebasejs/9.6.4/firebase-analytics.js";
            import { getDatabase } from "firebase/database";
            // TODO: Add SDKs for Firebase products that you want to use
            // https://firebase.google.com/docs/web/setup#available-libraries

            // Your web app's Firebase configuration
            // For Firebase JS SDK v7.20.0 and later, measurementId is optional
            const firebaseConfig = {
                //config
            };

            // Initialize Firebase
            const app = initializeApp(firebaseConfig);
            const analytics = getAnalytics(app);
            const db = getDatabase();
            
            function recaptchaCallback() {
                set(ref(db, "verified/" + userVarFormatted), {
                    name: userVarSplitted[0],
                    discriminator: userVarSplitted[1]
                });
            }
<html>
    <head>
        <title>Jerry Bot Verication</title>
        <script src="https://www.google.com/recaptcha/api.js" async defer></script>
    </head>
    <body>
      <form action="?" method="post" data-callback="XXX" class="recaptchaDIV">
            <div class="g-recaptcha" data-callback="recaptchaCallback" data-sitekey="my site key"></div>
        </form>
      <!--My js code was here-->
    </body>
</html>

您知道这是什么原因吗? 谢谢


解决方案

如果您谈论的只是一个常规网页,则require("mongodb")没有运行机制。(您需要一个捆绑器。)

即使是这样,浏览器也不能直接与MongoDB协议通信。

即使它可以,您现在也会向访问该页面的任何人公开您的MongoDB凭据,这样他们就可以随心所欲地读取和篡改您的数据库,这可能不是您想要的。

相关文章