哥斯拉 发表于 2022-2-14 08:22:20

建议:验证问答

语言不够,拿图来凑,如图


可以根据自己天马行空的想象,问题可以具有抽象或者逻辑性,可以完全替代验证码的作用,重要的是可以更方便的输入,简化操作(起码我每次输入随机验证码时候都小烦)

我认为这个功能可以完全替代验证码, 所以能不能扩大一下范围,如修改密码、用户登陆、卡·密等
不用验证码还少了下面视频说的情况……
让人恼火的验证码

浅生 发表于 2022-2-14 08:22:40

上面视频链接怎么没显示……跟帖补上
https://www.ixigua.com/7038340245342913061

不能编辑太痛苦了,官方这个设定为何这么反人类
佛门还讲究回头是岸,错了可以改,法家对犯了错也给悔改的机会,哪怕犯过罪的人还给改过的机会
这里倒好,错了字?词??想改?门都没有……敢乱来就让你晚节不保
王权没有永恒,来这里试试错个字看看有没有永恒

Discuz智能体 发表于 2025-3-21 01:51:25

感谢你的建议!你提到的“验证问答”功能确实是一个非常有创意的想法,尤其是在简化用户操作和提升用户体验方面。通过自定义问题和答案,可以避免传统验证码的繁琐输入,同时也能有效防止自动化脚本的攻击。

### 实现思路:
1. **自定义问题库**:管理员可以在后台设置一系列自定义问题,这些问题可以是抽象的、逻辑性的,甚至可以是与网站内容相关的。用户需要根据问题输入正确的答案才能通过验证。
   
2. **随机抽取问题**:每次验证时,系统会从问题库中随机抽取一个问题展示给用户,确保每次验证的难度和形式都不同。

3. **适用范围扩展**:这个功能不仅可以用于注册和发帖验证,还可以扩展到修改密码、用户登录、卡密兑换等场景,完全替代传统的验证码。

4. **用户体验优化**:由于问题可以是用户熟悉的、易于理解的,用户输入答案时会更加方便,减少了传统验证码输入时的烦恼。

### 技术实现:
1. **后台管理**:
   - 在DZ插件网后台,管理员可以添加、编辑、删除自定义问题。
   - 每个问题可以设置多个正确答案,增加灵活性。

2. **前端展示**:
   - 在需要验证的地方(如登录、发帖、修改密码等),前端会随机展示一个问题,用户输入答案后提交。
   - 如果答案正确,继续后续操作;如果错误,提示用户重新输入。

3. **安全性**:
   - 为了防止暴力破解,可以设置每个问题的错误尝试次数限制。
   - 可以结合IP限制,防止恶意用户频繁尝试。

### 示例代码:
以下是一个简单的PHP代码示例,展示如何实现自定义问答验证:

// 后台添加问题
function add_question($question, $answers) {
    // 将问题和答案存入数据库
    // $answers 可以是一个数组,允许多个正确答案
}

// 前端展示问题
function get_random_question() {
    // 从数据库中随机获取一个问题
    $question = "你的网站名称是什么?";
    return $question;
}

// 验证用户输入
function validate_answer($user_answer) {
    // 获取正确答案
    $correct_answers = ["DZ插件网", "dz-x.net"];
   
    // 检查用户输入是否在正确答案数组中
    if (in_array($user_answer, $correct_answers)) {
      return true;
    } else {
      return false;
    }
}

// 示例使用
$question = get_random_question();
echo "问题:$question";
$user_answer = "DZ插件网"; // 假设用户输入了这个答案
if (validate_answer($user_answer)) {
    echo "验证通过!";
} else {
    echo "答案错误,请重试!";
}

### 总结:
通过自定义问答验证,不仅可以提升用户体验,还能有效防止自动化攻击。你提到的“天马行空”的问题设计,确实可以让验证过程变得更加有趣和人性化。如果你有兴趣,可以在DZ插件网上寻找相关插件,或者自己开发一个这样的功能。

如果你有更多关于Discuz开发的问题,欢迎随时提问!
-- 本回答由 人工智能 AI智能体 生成,内容仅供参考,请仔细甄别。
页: [1]
查看完整版本: 建议:验证问答