2017-10-01 6 views
1

양식에 ReCapcha 번호 이미지를 표시하고 싶습니다. 양식을 제출하는 동안 주어진 필드에 꼬리표 코드를 써야합니다 ... 제가이 런든 번호를 어떻게 생성 할 수 있는지 알아야합니다 ... 여기 ReCapcha 번호 생성기 Laravel 5.5

입력 필드와 IMG의 HTML입니다 ..

사진 아래
<img src="" alt="This Is a CAPTCHA Image"><br> 
Enter the text of the image above <br> 
<input name="strCaptcha" type="text" size="8" value="" maxlength="8"> 

이 recapcha.Please 검토에 대한 예입니다 그리고 난이 작업을 수행 할 수있는 방법을 말해 ..

enter image description here

답변

0

많은 라이브러리가 있습니다.

1.Captcha에 대한 Laravel 작곡가이 패키지 필요 설치하려면 5

https://github.com/mewebstudio/captcha

:

composer require mews/captcha 

2.no - 보안 문자 (그 구글의 보안 문자)

https://github.com/anhskohbo/no-captcha

Re 첩 작곡가와이 패키지 :

composer require anhskohbo/no-captcha 

당신이 다음 자신의 개발을 찾고 있다면 당신은 형태

session_start(); 

$strings = '123456789'; 
$i = 0; 
$characters = 6; 
$code = ''; 
while ($i < $characters) 
{ 
    $code .= substr($strings, mt_rand(0, strlen($strings)-1), 1); 
    $i++; 
} 

$_SESSION['captcha'] = $code; 

//generate image 
$im = imagecreatetruecolor(124, 40); 
$foreground = imagecolorallocate($im, 0, 0, 0); 
$shadow = imagecolorallocate($im, 173, 172, 168); 
$background = imagecolorallocate($im, 255, 255, 255); 

imagefilledrectangle($im, 0, 0, 200, 200, $background); 

// use your own font! 
$font = 'monofont.ttf'; 

//draw text: 
imagettftext($im, 35, 0, 9, 28, $shadow, $font, $code); 
imagettftext($im, 35, 0, 2, 32, $foreground, $font, $code);  

// prevent client side caching 
header("Expires: Wed, 1 Jan 1997 00:00:00 GMT"); 
header("Last-Modified: " . gmdate("D, d M Y H:i:s") . " GMT"); 
header("Cache-Control: no-store, no-cache, must-revalidate"); 
header("Cache-Control: post-check=0, pre-check=0", false); 
header("Pragma: no-cache"); 

//send image to browser 
header ("Content-type: image/png"); 
imagepng($im); 
imagedestroy($im); 

표시를 할 수 있습니다

<img src="captcha.php"> 

위의 코드를 입력 : <input type="text" name="captcha">를 제출되면 입력 된 코드를 확인하십시오.

if ($_POST['captcha'] == $_SESSION['captcha']) 

재 : Numeric Captcha for PHP

0

내가 약 10 라인과 GD 라이브러리를했다.

http://php.net/manual/en/ref.image.php

정말 간단합니다. 이미지를 생성하고 img src를 사용하여 사용자에게 제공합니다. $ _SESSION 통해 솔루션을 전송할. 다음은 보안을 강화하기위한 몇 가지 팁입니다.

  1. 무작위
  2. 를 사용하여 더 때마다 문자 사이에
  3. 사용하십시오 TTF 폰트를 임의의 공간을 추가하고 무작위 글꼴마다
  4. 를 사용하여 임의의 텍스트 및 이미지 크기를 변경하려면 텍스트를 회전 고급 텍스트 왜곡 및 색상
  5. 임의로 줄을 이동하십시오.
  6. 암호를 임의의 쿠키로 저장하십시오.

P.: 핵심은 텍스트와 왜곡을 동일한 색상으로 만들어서 봇이 어떤 기호를 표시하는지 혼란스럽게 만들 수 있습니다.

조언 : 취약성이 있기 때문에 준비 라이브러리를 사용하지 마십시오. 또한 코드의 독창성은 보안을 위해 다른 사람의 솔루션을 사용하는 것보다 낫습니다. 우리 모두는 결국 Google을 사용합니다.

옵션 : 사용자 편의를 위해 o, O, Q 및 0을 사용하지 마십시오.