Как скрыть PDF-файл на моем сайте от ботов с помощью reCaptcha? - PullRequest
0 голосов
/ 13 июня 2018

В настоящее время я пытаюсь опубликовать PDF-документ на своем личном веб-сайте.

Когда это не проблема, мне нужно скрыть его от ботов.
Я пытался использовать Google Invisible reCAPTCHAно были некоторые проблемы.

Сканеры могут выполнять поиск по исходному коду, поэтому неактивная кнопка не работает.
Нужна ли мне специальная страница, чтобы проверить, выполнено ли reCAPTCHA?Может быть, есть простой способ всегда показывать ссылку, но скрывать ссылку HREF или формировать атрибут ACTION (может быть, с помощью PHP), когда нечеловеческий найден?

        <form id="resume" action="subpage_that_shows_my_pdf_file_link.html" method="POST">
            <button class="g-recaptcha" data-sitekey="666" data-callback="onSubmit" type="submit">Submit</button>
        </form>

На самом деле документы Google не помогают с этим.

1 Ответ

0 голосов
/ 13 июня 2018

Хорошо, я сделал это с captcha-response .Мои основные части кода:

index.php

        <form id="reCaptchaForm" action="file.php" method="POST">
            <button class="g-recaptcha" data-sitekey="..." data-callback='onSubmit' >link</button>
        </form>

file.php

if(isset($_POST['g-recaptcha-response'])) {
$secretKey = '...';
$response = $_POST['g-recaptcha-response'];
$remoteIp = $_SERVER['REMOTE_ADDR'];
$reCaptchaValidationUrl = file_get_contents("https://www.google.com/recaptcha/api/siteverify?secret=$secretKey&response=$response&remoteip=$remoteIp");
$result = json_decode($reCaptchaValidationUrl, TRUE);
if($result['success'] == 1) {
    $userMessage = '<meta http-equiv="refresh" content="0;URL='file.pdf'" />';
}

Специальнокод страницы отображается только в том случае, если в этом конкретном сеансе Google невидимая капча говорит да, выглядит как обычный пользователь :)

...