标签: captcha

设计身份验证:必须使用验证码?

我正在使用rails 3下的设计认证插件.目前,我已经禁用了电子邮件确认,因此注册非常简单快捷.

我想知道是否需要某种验证码以保护网站再次机器人.我想避免让我的数据库充满假用户,虽然这对系统没有太大的伤害(除了填满磁盘!).

如果强烈建议使用验证码,如果登录/注册仅限于HTTPS,是否也是如此?机器人使用HTTPS吗?

captcha ruby-on-rails devise

2
推荐指数
1
解决办法
1123
查看次数

为什么我的PHP电子邮件表单会吸引垃圾邮件?

我已经建立了一个网站,我希望在网页上有一个电子邮件联系表格,以便有人可以给我发消息.

我正在使用本网站的代码:http://www.w3schools.com/php/php_secure_mail.asp

我正在使用PHP停止电子邮件注入的部分

即使我的网站每天点击次数很少(比不到10个访问者),我发现我每天都会从"垃圾邮件发送者"那里收到3或4封邮件,他们似乎正在向我发送与主题无关的随机邮件网站问题.

我对这一切都很陌生,所以我想问一个问题:为什么我的PHP电子邮件形式吸引垃圾邮件,我该怎么做才能阻止它?

理想情况下,我想让真实用户尽可能轻松地与我联系,如果可能的话,如果我不必使用验证码,我会更喜欢它.

非常感谢

我正在使用的代码:

<html>
<body>
<?php
function spamcheck($field)
  {
  //filter_var() sanitizes the e-mail
  //address using FILTER_SANITIZE_EMAIL
  $field=filter_var($field, FILTER_SANITIZE_EMAIL);

  //filter_var() validates the e-mail
  //address using FILTER_VALIDATE_EMAIL
  if(filter_var($field, FILTER_VALIDATE_EMAIL))
    {
    return TRUE;
    }
  else
    {
    return FALSE;
    }
  }

if (isset($_REQUEST['email']))
  {//if "email" is filled out, proceed

  //check if the email address is invalid
  $mailcheck = spamcheck($_REQUEST['email']);
  if ($mailcheck==FALSE)
    {
    echo "Invalid input";
    }
  else
    {//send email
    $email = $_REQUEST['email'] ;
    $subject …
Run Code Online (Sandbox Code Playgroud)

php forms email captcha spam

2
推荐指数
1
解决办法
2767
查看次数

生成验证码图像PHP

我想使用PHP imagettftext生成Captcha Image.以下是我的代码.它给出了一个空图像.我想解决这个问题.

我已经测试了代码,但无法找到为什么图像不是bieng显示,虽然我的随机文本被传递给验证码图像生成的功能.

<?php

    function generateRandomString($length = 10) {
        $characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
        $randomString = '';
        for ($i = 0; $i < $length; $i++) {
            $randomString .= $characters[rand(0, strlen($characters) - 1)];
        }
        return $randomString;
    }

    function generateCaptchaImage($text = 'good'){
        echo $text;
        echo 'OK';
        // Set the content-type
        header('Content-Type: image/png');

        $width = 200;
        $height = 30;
        $font = 'ThisisKeSha.ttf';

        // Create the image
        $im = imagecreatetruecolor($width, $height);

        //ADD NOISE - DRAW background squares
        $square_count = 6;
        for ($i = 0; $i …
Run Code Online (Sandbox Code Playgroud)

php captcha text image imagettftext

2
推荐指数
1
解决办法
8953
查看次数

我的 codeigniter 验证码没有生成图像

我的 CodeIgniter 验证码没有生成,所以我无法在我的视图中显示它

控制器

public function login() {
    $this->load->helper('captcha');
    $this->form_validation->set_rules($this->login_rules);
    $userCaptcha = set_value('captcha');
    $word = $this->session->userdata('captchaWord');

    if($this->form_validation->run() == TRUE && strcmp(strtoupper($userCaptcha),strtoupper($word)) == 0) {
        $this->session->unset_userdata('captchaWord');
        $username = $this->input->post('username');
        $password = $this->input->post('password');

        if(!$this->autentifikasi->login($username,$password)) {
            $this->session->set_flashdata('pesan', '<div class="error">Login gagal</div>');
            redirect(site_url('user/login'));
        } else {
            $this->session->set_flashdata('pesan', '<div class="sukses">Anda telah berhasil login, selamat berbelanja.</div>');
            redirect(site_url('user/login'));
        }
    }

    $original_string = array_merge(range(0,9), range('a','z'), range('A', 'Z'));
    $original_string = implode("", $original_string);
    $captcha = substr(str_shuffle($original_string), 0, 6);

    $vals = array(
        'word' => $captcha,
        'img_path' => './captcha/',
        'img_url' => base_url().'user/login/',
        'font_path' …
Run Code Online (Sandbox Code Playgroud)

php captcha codeigniter

2
推荐指数
1
解决办法
3731
查看次数

在 angularJS 中集成验证码的最佳方式

我对 angularJS 比较陌生,我想知道以下问题的最干净的解决方案是什么。假设我有一个如下形式

<form name="contactform">
   <select id="salutation" name="salutation" required="true" ng-model="contactRequest.salutation"><option value="Herr" selected="">Herr</option><option value="Frau">Frau</option></select>

   <img width="255" height="70" alt="" src="/website/var/tmp/aed4d639a26c4614cdac2a967381c61c.png" name="captcha[img]"> 

   <captcha-reloader reload-url="/refresh-captcha" img-tag-name="captcha[img]" hidden-field-name="captcha[id]"></captcha-reloader>

   <input type="text" name="captcha[input]" required="true" ng-model="contactRequest.captcha.input">                

   <input type="text" style="display: none;" ng-model="contactRequest.captcha.id" value="aed4d639a26c4614cdac2a967381c61c" name="captcha[id]">   
...
Run Code Online (Sandbox Code Playgroud)

如您所见,它使用一个指令来显示一个按钮,该按钮将重新加载 CAPTCHA。它被定义为

    myApp.directive('captchaReloader', function () {
    return {
        restrict: 'E',
        scope: {
            reloadUrl: '@',
            imgTagName: '@',
            hiddenFieldName: '@'
        }, //isolate scope
        template: '<a href="" ng-click="reloadCaptcha()" class="captcha-reload"></a>',
        link: function (scope, element, attrs) {

        },
        controller: function ($scope, $element, $attrs, $http) {
            $scope.reloadCaptcha = function () …
Run Code Online (Sandbox Code Playgroud)

javascript forms captcha angularjs angularjs-directive

2
推荐指数
1
解决办法
1万
查看次数

使用 Google reCAPTCHA 验证表单提交

我看过这个问题

如何在表单提交时验证 Google reCaptcha

并尝试将该问题的答案实施到我的代码中以验证我的表单,以便在验证码尚未完成时它不会提交。

但是什么也没有发生 - 它只是提交表单。

这是我的代码:

 <head>

        <script type="text/javascript">
  var onloadCallback = function() {
    grecaptcha.render('html_element', {
      'sitekey' : 'my_site_key'
    });
  };
</script>

 </head>

          <div id="html_element"></div>
      <br>

      <input type="submit" value="Submit" onclick="myFunction">

<script src="https://www.google.com/recaptcha/api.js?onload=onloadCallback&render=explicit" async defer>
function myFunction() {    
if(grecaptcha.getResponse() == "")
    alert("You can't proceed!");
else
    alert("Thank you");}
 </script>
Run Code Online (Sandbox Code Playgroud)

任何人都可以帮忙吗?

编辑

<html>
<head>
        <script type="text/javascript">

var onloadCallback = function() {
    grecaptcha.render('html_element', {
    'sitekey' : 'site-key'
  });
};
onloadCallback();

$('form').on('submit', function(e) {
  if(grecaptcha.getResponse() == "") {
    e.preventDefault();
    alert("You can't proceed!"); …
Run Code Online (Sandbox Code Playgroud)

html javascript validation captcha recaptcha

2
推荐指数
1
解决办法
2万
查看次数

Python opencv从验证码中删除噪音

我需要自动解决验证码以从站点获取公共数据.

我使用python和opencv.我是解决图像处理问题的新手.在搜索之后,作为解决验证码的方法我接下来想出了.由于Captha中的文本使用相关颜色组,我尝试使用HSV格式和掩码,然后将图像转换为灰度并使用阈值(Adaptive_THRESH_MEAN_C)从图像中去除噪声.

但这还不足以消除噪音并使用OCR(Tesseract)提供自动文本识别.见下图.

在我的解决方案中有什么我可以改进的东西还是有更好的方法?

原始图片:

captcha1 captcha2

处理过的图片:

captcha1 captcha2

码:

import cv2
import numpy as np

img = cv2.imread("1.jpeg")
hsv = cv2.cvtColor(img, cv2.COLOR_BGR2HSV)

mask = cv2.inRange(hsv, (36, 0, 0), (70, 255,255)) #green
# mask = cv2.inRange(hsv, (0, 0, 0), (10, 255, 255))
# mask = cv2.inRange(hsv, (125, 0, 0), (135, 255,255))

img = cv2.bitwise_and(img, img, mask=mask)
img[np.where((img == [0,0,0]).all(axis = 2))] = [255,255,255]

img = cv2.cvtColor(img,cv2.COLOR_BGR2GRAY)
img = cv2.adaptiveThreshold(img, 255, cv2.ADAPTIVE_THRESH_MEAN_C, cv2.THRESH_BINARY, 15, 2)

cv2.imwrite("out.png", img)
Run Code Online (Sandbox Code Playgroud)

python captcha opencv image-processing

2
推荐指数
1
解决办法
2034
查看次数

OpenCV findContours() 只返回一个外部轮廓

我试图隔离验证码中的字母,我设法过滤了验证码,结果得到了这张黑白图像:

在此处输入图片说明

但是当我尝试使用 OpenCV 的 findContours 方法分离字母时,它只是发现了一个包裹我整个图像的外部轮廓,从而产生了这个图像(图像外的黑色轮廓)。

在此处输入图片说明

我将此代码与 Python 3 和 OpenCV 3.4.2.17 一起使用:

img = threshold_image(img)
cv2.imwrite("images/threshold.png", img)

image, contours, _ = cv2.findContours(img, cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_NONE)

for i, contour in enumerate(contours):
    area = cv2.contourArea(contour)
    cv2.drawContours(img, contours, i, (0, 0, 0), 3)

cv2.imwrite('images/output3.png', img)
Run Code Online (Sandbox Code Playgroud)

我只希望我的最终结果是每个字符外有 5 个轮廓。

python captcha opencv opencv-contour cv2

2
推荐指数
1
解决办法
7457
查看次数

检测颜色并从图像中删除该颜色

我的图像背景为浅紫色,字符为深蓝色。我的目标是从图像中识别文本。所以我试图从背景中去除浅紫色,以便我的图像没有噪音,但我找不到该图像的确切颜色代码,因为它在任何地方都有些不同,所以我无法掩盖图片。这是我的代码

import numpy as np
from PIL import Image

im = Image.open('capture.png')

im = im.convert('RGBA')
data = np.array(im)

rgb = data[:,:,:3]
color = [27, 49, 89]   # Original value to be mask
black = [0,0,0, 255]
white = [255,255,255,255]
mask = np.all(rgb == color, axis = -1)
data[mask] = black
data[np.logical_not(mask)] = white

new_im = Image.fromarray(data)
new_im.save('new_file.png')

Run Code Online (Sandbox Code Playgroud)

所以我想如果我可以去除所有特定颜色范围内的颜色,比如 [R:0-20, G:0-20, B:80-100] 也许这会起作用。有人可以告诉我我该怎么做。

任何其他解决此问题的建议也将不胜感激。

python captcha image color-picker image-processing

2
推荐指数
1
解决办法
4279
查看次数

无法使用 pytesseract.image_to_string 从 Image 读取文本

这就是验证码的样子。

这里的问题是我需要删除行并编写代码来识别字符。到目前为止,我已经看到了解决方案,其中 char 是实心的,但它具有带双边框的 char。

python captcha opencv python-imaging-library python-tesseract

2
推荐指数
1
解决办法
183
查看次数