captcha 相关问题

验证码是一种用于计算的质询 - 响应测试,旨在确保响应由人类提供而不是由计算机生成。

Laravel+Vue 如何为表单制作验证码?

我有一个带有评论表单的app.vue模板: 我有一个带有评论表单的 app.vue 模板: <template> <div class="container mt-5"> <div class="card shadow"> <div class="card-header bg-primary text-white"> <h3>Contact Form</h3> </div> <div class="card-body"> <div v-if="replyingToComment" class="alert alert-secondary" role="alert"> Reply on: "{{ replyingToComment.text.substring(0, 20) }}..." </div> <form @submit.prevent="submitForm"> <!-- Other form fields --> <div class="mb-3"> <label for="username" class="form-label">UserName</label> <input type="text" v-model="comment.username" id="username" class="form-control" placeholder="Enter your username" required /> </div> <div class="mb-3"> <label for="email" class="form-label">E-mail</label> <input type="email" v-model="comment.email" id="email" class="form-control" placeholder="Enter your email" required /> </div> <div class="mb-3"> <label for="homepage" class="form-label">Home page</label> <input type="url" v-model="comment.homepage" id="homepage" class="form-control" placeholder="Enter your homepage (optional)" /> </div> <div class="mb-3"> <label for="text" class="form-label">Text</label> <textarea v-model="comment.text" id="text" class="form-control" rows="5" placeholder="Enter your message" required></textarea> </div> <div class="mb-3"> <label for="file" class="form-label">File (Max 10MB)</label> <input type="file" ref="file" id="file" class="form-control" /> </div> <!-- CAPTCHA --> <div class="mb-3"> <label for="captcha" class="form-label">Captcha</label> <img :src="captchaImage" alt="CAPTCHA Image" class="mb-2" @click="loadCaptcha" style="cursor: pointer;" /> <input type="text" v-model="captcha" id="captcha" class="form-control" placeholder="Enter CAPTCHA" required /> <input type="hidden" v-model="captchaKey" id="captchaKey" name="key" /> </div> <!-- Error message display --> <div v-if="errorMessage" class="alert alert-danger"> {{ errorMessage }} </div> <button type="submit" class="btn btn-primary">Submit</button> </form> </div> </div> </div> <div id="app"> <Comments @setParentId="setParentId" /> </div> </template> <script> import axios from 'axios'; import Comments from '../components/Comments.vue'; export default { name: 'App', components: { Comments, }, data() { return { comment: { username: '', email: '', homepage: '', text: '', parent_id: null }, captcha: '', captchaKey: '', captchaImage: '', errorMessage: '', replyingToComment: null, } }, computed: { isNewComment() { return !this.$route.path.includes('edit'); } }, async created() { await this.loadCaptcha(); if (!this.isNewComment) { const response = await axios.get(`/api/comments/${this.$route.params.id}`); this.comment = response.data; } }, methods: { async loadCaptcha() { try { const response = await axios.get('/captcha/api/math'); this.captchaImage = response.data.img; this.captchaKey = response.data.key; // Assuming the response includes the key } catch (error) { console.error('Error loading CAPTCHA:', error); } }, async submitForm() { try { const formData = new FormData(); formData.append('username', this.comment.username); formData.append('email', this.comment.email); formData.append('homepage', this.comment.homepage); formData.append('text', this.comment.text); formData.append('parent_id', this.comment.parent_id); formData.append('captcha', this.captcha); formData.append('key', this.captchaKey); // Pass the CAPTCHA key if (this.$refs.file.files[0]) { formData.append('file', this.$refs.file.files[0]); } console.log(formData); const response = await axios.post('/api/comments/validate', formData); this.$router.push('/'); } catch (error) { if (error.response && error.response.data.errors) { this.errorMessage = Object.values(error.response.data.errors).flat().join('\n'); } else { console.error(error); } } }, async setParentId(parentId) { this.comment.parent_id = parentId; try { const response = await axios.get(`/api/comments/${parentId}`); this.replyingToComment = response.data; } catch (error) { console.error('Error fetching parent comment:', error); } window.scrollTo(0, 0); } } }; </script> 提交表单后,请求将发送到 Laravel 后端,即 CommentController 验证器: public function validateComment(Request $request) { $rules = [ 'captcha' => 'required|captcha_api:' . request('key') . ',math', 'username' => 'required|string', 'email' => 'required|email', 'homepage' => 'nullable|url', 'text' => 'required|string', 'file' => 'nullable|file|max:10240', // 10MB max size ]; $validator = validator()->make(request()->all(), $rules); if ($validator->fails()) { return response()->json(['errors' => $validator->errors()], 422); } else { return $this->storeComment($request); } } 但是由于某种原因,当我提交带有正确输入的验证码的表单时,出现错误 POST localhost:9000/api/comments/validate 422 (Unprocessable Content) 和验证错误validation.captcha_api。问题是什么?我想我按照文档中的说明做了所有事情https://github.com/mewebstudio/captcha。不,我不想使用 reCaptcha,只想使用需要输入图片中的内容的验证码,或者带有数学问题的验证码,目前我只找到了 mewebstudio/captcha 所以,我明白了问题所在……重点是 vue.js 的绝对笨拙。问题在于,当 vue.js 向后端发送数据时,它会将数字转换为字符串。验证码的解法,例如数字21在后端变成了“21”,验证器说解法不正确。我将以下代码放在验证器前面: $request->captcha = intval($request->captcha);

回答 1 投票 0

从验证码中去除密集的网格线并转换为清晰的图像

我想从此图像中提取文本。我是opencv的新手。我已经针对各种问题尝试了各种 opencv 代码,但没有一个对我有用。 我怎样才能从中提取文本?或者也许...

回答 1 投票 0

在nodejs中发出POST请求将令牌放在discord服务器上

我有 2 验证码,但无法使用它,因为我不知道将验证码令牌放在哪里 我正在尝试向以下端点发出发布请求: https://discord.com/api/v9/invites/${link}\ 但是,我

回答 1 投票 0

Wordpress 自定义表单验证码

有没有办法在wordpress中将验证码添加到表单中,我已经使用了一些插件,但它只允许在登录、评论表单等中添加验证码..

回答 2 投票 0

如何在 WordPress 网站上添加验证码,然后任何人都可以使用其上的任何页面

我们在页眉页脚中使用插件、html代码进行了很多尝试,但没有成功 我们正在努力做什么 它应该适用于 wordpress 尝试将代码放入页眉页脚脚本中 每个访客都必须...

回答 2 投票 0

Cloudflare 管理所有子域的挑战

(相关问题:Cloudflare Managed Challenge on API for SPA导致挑战不可见) 我们有一个在 Cloudflare Pages (ourapplication.com) 上运行的前端应用程序,然后是后端服务...

回答 1 投票 0

BigCommerce - 如何禁用/绕过 reCAPTCHA 以在测试环境中实现自动化?

我目前正在为 BigCommerce(使用 Google reCAPTCHA 的 Web 应用程序)进行自动化端到端 (E2E) 测试。 以下是我的设置的具体信息: Web应用程序:基于BigCommerce

回答 1 投票 0

如何禁用或绕过 Google reCAPTCHA 进行端到端测试?

我目前正在为使用 Google reCAPTCHA 的 Web 应用程序进行自动化端到端 (E2E) 测试。 Web 应用程序基于 BigCommerce。 reCAPTCHA 阻止我测试签名...

回答 1 投票 0

为什么人们要公开发布验证码?验证码:一些随机词

我正在实现一个在注册表单上带有验证码的网站;我的第一次。我读过几十篇关于支持和反对的论点以及所有各种实现的帖子。我很高兴...

回答 2 投票 0

错误:Twitter 验证码出现在自动创建帐户时

我想做推特自动化或创建帐户,但我面临的问题是每时每刻都获得验证码。我如何在硒自动化中解决同样的问题,我尝试通过......旋转代理

回答 1 投票 0

如何使用python绕过验证码

我知道关于这个问题还有很多其他问题,但它们似乎……已经过时了(?)或者至少,它们不再起作用了。我尝试了多种方法,例如代理轮换器、自定义代理列表(w...

回答 1 投票 0

如何以编程方式完成 CloudFlare 验证码?

我从我的网站调用外部服务 API 来获取数据。最近,我所做的每次调用都会返回一个 CloudFlare 页面,该页面阻止我获得所需的结果。 该网站的所有者...

回答 4 投票 0

在 Umbraco 13 中,如何在不使用 Umbraco Forms 的情况下实现 ReCaptcha v3?

我的 Umbraco 13 网站上有一个登录和注册页面,按照 Umbraco CMS v13 文档“会员注册和登录”页面中的说明实施。 我想补充一下

回答 1 投票 0

向 Discord 提交 hcaptcha 验证码令牌以使用 selenium 创建帐户

我正在使用 python selenium 创建一个 Discord 帐户(https://discord.com/register),但它受到 hcaptcha 的保护。我有一个验证码 API (2captcha/capmonster) 来返回验证码令牌并且

回答 1 投票 0

Laravel-8 验证码在服务器问题上启动

如何解决有关 Mews Captcha 的问题? 在 ProviderRepository.php 第 208 行: 找不到类“Mews\Captcha\CaptchaServiceProvider”

回答 2 投票 0

友好的验证码 - 是否需要验证请求?

我是第一次集成Friendly Captcha,我按照官方教程进行操作:https://docs.FriendlyCaptcha.com/#/installation 第二步之后,我的网络应用程序正确解决了这个难题......

回答 2 投票 0

是否可以手动停止Selenium Python中的代码以绕过验证码,然后恢复它

我使用 Selenium 和 Python 来与网络交互。是否可以以某种方式启动浏览器,然后暂停程序一段时间,比如 2 分钟,然后让其余代码运行。

回答 1 投票 0

自制验证码,安全吗?

我一直在收集有关如何防止日志页面上的暴力攻击或防止创建多个帐户的骚扰的信息。 我得出了结论(感谢你们

回答 3 投票 0

使用 svg-captcha npm 验证验证码

我正在使用 svg-captcha 库(链接 npm),但是我找不到验证从用户发送到服务器的验证码的方法。 现在我可以用它来生成验证码并返回客户端。 这是我的代码: 应用程序....

回答 2 投票 0

如何在 Twitter 验证中获得 arkose lab 的 fc-token

在此输入图像描述 我试图在 Python 中使用 Selenium 来检索特定的 HTML 元素,更具体地说是它的值。 ` 我正在尝试在 Python 中使用 Selenium 来检索特定的 HTML 元素,更具体地说是它的值。 `<input type="hidden" id="FunCaptcha-Token" name="fc-token" value="702178f80cd6ade39.2875608305|r=eu-west-1|meta=3|meta_width=558|meta_height=523|metabgclr=transparent|metaiconclr=%23555555|guitextcolor=%23000000|pk=2CB16598-CB82-4CF7-B332-5990DB66F3AB|at=40|ag=101|cdn_url=https%3A%2F%2Fclient-api.arkoselabs.com%2Fcdn%2Ffc|lurl=https%3A%2F%2Faudio-eu-west-1.arkoselabs.com|surl=https%3A%2F%2Fclient-api.arkoselabs.com|smurl=https%3A%2F%2Fclient-api.arkoselabs.com%2Fcdn%2Ffc%2Fassets%2Fstyle-manager">` 如何用 Selenium 检索它? 我正在使用以下代码: token_element = WebDriverWait(self.driver, 10).until( EC.presence_of_element_located((By.NAME, "fc-token")) ) logger.info(f"Token key{token_element}") publickey = re.search(r'pk=([0-9A-Fa-f-]+)', token_element.get_attribute("value")) logger.info(f"PUBLIC key{publickey}") 但从未被发现。我添加了一条打印语句来检查 DOM: print(f"DOM\n {self.driver.page_source}") 但是缺少该元素。 有人可以帮我解决这个问题吗? 提前致谢。 使用以下代码获取值: driver.switch_to.default_content() arkose_iframe = driver.find_element( By.XPATH, "//iframe[@id='arkose_iframe']" ) driver.switch_to.frame(arkose_iframe) verification_challenge_iframe = driver.find_element( By.XPATH, "//iframe[@title='Verification challenge']" ) driver.switch_to.frame(verification_challenge_iframe) authenticate_button = driver.find_element( By.XPATH, "//input[@name='fc-token']" ) if authenticate_button: authenticate_value = authenticate_button.get_property('value') public_key = re.findall(r'\|pk\=([^\|]+)', authenticate_value)[0] surl = re.findall(r'\|surl\=([^\|]+)', authenticate_value)[0]

回答 1 投票 0

© www.soinside.com 2019 - 2024. All rights reserved.