HEX
Server: nginx/1.18.0
System: Linux iZj6c1ieg2jrpk1z5tzi19Z 6.3.9-1.el7.elrepo.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Jun 21 22:18:40 EDT 2023 x86_64
User: www (1001)
PHP: 8.2.4
Disabled: passthru,exec,system,putenv,chroot,chgrp,chown,shell_exec,popen,proc_open,pcntl_exec,ini_alter,ini_restore,dl,openlog,syslog,readlink,symlink,popepassthru,pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,imap_open,apache_setenv
Upload Files
File: /www/wwwroot/www.cytocare.cn/wp-content/plugins/friendly-captcha/public/mutation-observer.js
(function () {
  function findCaptchaElements(node) {
    if (node.querySelectorAll) {
      return node.querySelectorAll(".frc-captcha");
    } else {
      return [];
    }
  }

  function setupV1CaptchaElements(node) {
    let autoWidget = window.friendlyChallenge.autoWidget;

    const elements = findCaptchaElements(node);
    for (let i = 0; i < elements.length; i++) {
      const hElement = elements[i];

      // friendly-challenge adds the "friendlyChallengeWidget" property to the element when it's initialized
      if (hElement && !hElement.friendlyChallengeWidget) {
        autoWidget = new window.friendlyChallenge.WidgetInstance(hElement);
      }
    }

    window.friendlyChallenge.autoWidget = autoWidget;
  }

  function setupV2CaptchaElements(node) {
    const elements = findCaptchaElements(node);
    window.frcaptcha.attach(elements);
  }

  const observer = new MutationObserver((mutationList) => {
    for (let m = 0; m < mutationList.length; m++) {
      const mutation = mutationList[m];

      const nodes = mutation.addedNodes;
      for (let n = 0; n < nodes.length; n++) {
        if (window.friendlyChallenge) {
          setupV1CaptchaElements(nodes[n]);
        } else if (window.frcaptcha) {
          setupV2CaptchaElements(nodes[n]);
        }
      }
    }
  });

  function init() {
    // Start observing the document body for changes
    observer.observe(document.body, {
      attributes: false,
      childList: true,
      subtree: true,
    });
  }

  init();
})();