最近利用ALists创建了个网盘资源站,怎么搞个动态验证码进行验证后才能进行访问下载,使用了禁止打开控制台校验等方式减少绕过几率,现在分享给大家。
NodeJS后端代码
利用json存储验证码数据,每个用户每天只能获取一次验证码,十二小时有效
您需要登录才能查看完整内容
已经登录?立即刷新
前端代码
<script disable-devtool-auto src='https://cdn.jsdelivr.net/npm/disable-devtool'></script>
<script src="https://unpkg.com/sweetalert/dist/sweetalert.min.js"></script>
<script>
document.addEventListener('keydown', function(event) {
if (event.key === 'F12' || (event.ctrlKey && event.shiftKey && ['I', 'J', 'C'].includes(event.key.toUpperCase()))) {
event.preventDefault();
}
});
document.addEventListener("DOMContentLoaded", function() {
promptPassword("success", "请输入验证码以继续访问");
});
// 验证验证码函数
function validateCaptcha(captcha) {
const xhr = new XMLHttpRequest();
xhr.open("POST", "验证接口, true);
xhr.setRequestHeader("Content-Type", "application/json");
xhr.onreadystatechange = function () {
if (xhr.readyState === 4) {
try {
const response = JSON.parse(xhr.responseText);
if (xhr.status === 200 && response.code === 200) {
welcomeUser();
} else {
swal("错误", response.msg || "验证码错误,请重试", "error").then(() => {
promptPassword("error", "请重新输入验证码");
});
}
} catch (e) {
console.error("JSON 解析错误:", e);
swal("错误", "响应格式不正确,请稍后重试", "error").then(() => {
promptPassword("error", "请重新输入验证码");
});
}
}
};
xhr.send(JSON.stringify({ code: captcha }));
}
// 提示输入验证码的函数
function promptPassword(icon, title) {
swal({
title: title,
text: "请确认您已获取正确的验证码。请点击下方按钮关注我们的微信公众号以获取验证码。",
closeOnClickOutside: false,
icon: icon,
buttons: {
confirm: {
text: "确认提交",
value: "confirm",
className: "custom-swal-button swal-button--confirm"
},
getCode: {
text: "微信公众号",
value: "get_code",
className: "custom-swal-button swal-button--copy"
}
},
content: {
element: "input",
attributes: {
placeholder: "请输入验证码",
type: "text",
style: "width: 100%; padding: 10px; border: 1px solid #ccc; border-radius: 4px;"
}
}
})
.then((value) => {
if (value === '') {
promptPassword("warning", "请输入正确的验证码");
} else if (value === "get_code") {
showWeChatCode();
} else if (!/^\d{6}$/.test(value)) {
promptPassword("warning", "验证码格式不正确,请输入6位数字");
} else {
validateCaptcha(value);
}
});
}
// 显示微信公众号二维码
function showWeChatCode() {
swal({
title: "关注微信公众号获取验证码",
text: "请扫描以下二维码关注我们的微信公众号以获取验证码。",
icon: "info",
closeOnClickOutside: false,
content: {
element: "img",
attributes: {
src: "公众号图片",
style: "width: 100%; height: auto; border-radius: 4px;"
}
},
buttons: {
confirm: {
text: "返回输入",
value: "confirm",
className: "custom-swal-button swal-button--confirm"
}
}
}).then(() => {
promptPassword("info", "请输入验证码以继续访问");
});
}
// 欢迎用户函数
function welcomeUser() {
swal("欢迎!", {
icon: "success",
buttons: false,
timer: 1000, //1秒后自动消失
});
}
// 防止查看页面源代码
window.onbeforeunload = function() {
return "您确定要离开此页面吗?";
};
// 检测并阻止右键菜单
window.addEventListener('contextmenu', function(event) {
event.preventDefault();
}, false);
// 检测并阻止选中文本
window.addEventListener('selectstart', function(event) {
event.preventDefault();
}, false);
</script>
效果图

仅供参考,按照自己需求修改
本文 AList嵌入动态验证码实现引流 https://www.itwk.cc/post/2194.html 所涉及的软件均源自于网络。
不得将上述内容用于商业或者非法用途,否则,一切后果请用户自负。
本站信息来自网络,版权争议与本站无关,您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容。
访问和下载本站内容,说明您已同意上述条款。
本站为非盈利性站点,VIP功能仅仅作为用户喜欢本站捐赠打赏功能,本站不贩卖软件,所有内容不作为商业行为。