Simple Dom webscraping onmogelijk maken

Overzicht Reageren

Sponsored by: Vacatures door Monsterboard

Daniel van Seggelen

Daniel van Seggelen

01/06/2021 15:34:02
Quote Anchor link
Beste,

Met veel werk heb ik een database bij elkaar geraapt met informatie wat op een website word getoond.
Ik wil wel verbieden dat spiders/crawlers deze inforamtie kunnen vergaren.

Ik lees over een chaptcha, maar bij elke zoekquery of de volgende pagina een chaptcha inklikken lijkt me ook niet echt gebruiksvriendelijk.


Weet iemand wat de beste manier hiervoor is?

Alvast bedankt

Daniel
 
PHP hulp

PHP hulp

25/09/2021 11:16:43
 
- Ariën -
Beheerder

- Ariën -

01/06/2021 15:42:34
Quote Anchor link
Je kan dit nooit 100% beveiligen. Maar wat drempels zijn controles op useragents, en het gebruik van een robots.txt bestand. De grootste spiders kunnen hier wel mee omgaan.
Gewijzigd op 01/06/2021 15:42:49 door - Ariën -
 
Ozzie PHP

Ozzie PHP

01/06/2021 16:20:56
Quote Anchor link
Of alles achter een login zetten.
 
Ward van der Put
Moderator

Ward van der Put

01/06/2021 16:30:10
Quote Anchor link
reCAPTCHA v3 is voldoende effectief tegen tegen bots.

Verder is het vooral afhankelijk van de waarde van de informatie. Het omslagpunt waarop het lonend wordt om een captcha farm in te huren, ligt niet eens zo hoog.
 
Daniel van Seggelen

Daniel van Seggelen

01/06/2021 18:53:40
Quote Anchor link
Bedankt voor de berichten.
Dit is een bedrijvengids. Dus zonder inloggen kunnen ze de eerste 50 bedrijven zien en daarna op een detaillink klikken. De detaillinks van elk bedrijf moet altijd gezien kunnen worden, omdat dit wel door alle bots geindexeert dient te worden.

Inderdaad alles een login zetten lijkt me wel een goed plan.
Via de CLI werken sessies ook niet, dus alleen via de browser als ze daadwerkelijk geregistreerd zijn, maar dat kunnen spammers ook doen. Hier zal ik dan een sterke verificatie voor eisen.

Een chaptchafarm kan dit zo omzeilen idd, dus dat lijkt me geen goede optie.
 
Adoptive Solution

Adoptive Solution

01/06/2021 19:17:13
Quote Anchor link
Is dit wat?
Enige vereiste is de tafel van 10.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
<?php
session_start();
if ( isset($_POST['submit']) )
{

    $human = intval($_POST['human']);
    $text['errHuman'] = '';
    if ( md5( $human ) != $_SESSION['numsum'] )
    {

        $text['errHuman'] = 'Your anti-spam is <b>wrong</b>';
    }
else {
        $text['errHuman'] = 'Your anti-spam is <b>correct</b>';
    }
}

$num1 = rand(1,9);
$num2 = rand(1,9);
$_SESSION['numsum'] = md5( $num1 * $num2 );
?>


<form method="POST">
    <label for="human"><?php echo $num1 . ' * ' . $num2 . ' = ?' ;?> </label>
    <input
        type        = "number"
        id          = "human"
        name        = "human"
        placeholder = "Your answer"
        autofocus
        style       = "font-size: 120%; padding: 0.5em; width: 7em;"
    />
    <input
        type="submit"
        name="submit"
        value="Send" />
</form>

<p><?php echo $text['errHuman']; ?></p>

</div>
 
Daniel van Seggelen

Daniel van Seggelen

01/06/2021 20:03:28
Quote Anchor link
Dit werkt wel, maar bij elke nieuwe request wat een crawler zal uitvoeren word dus steeds een nieuwe $_SESSION['numsum'] berekent

Hierin dus:

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<?php echo $num1 . ' * ' . $num2 . ' = ?' ;?>


In de crawler kan men ook deze waarde berekenen met een split of pregmatch en vervolgens in de "human" input field als post meegeven.
Maar dan moet ik een manier vinden om text naar een plaatje met PHP GD bijv. te converteren.
Bedankt iig
Gewijzigd op 01/06/2021 20:06:46 door Daniel van Seggelen
 
Adoptive Solution

Adoptive Solution

01/06/2021 21:30:50
Quote Anchor link
In een ver verleden bij KPN gevonden :

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
<?php
session_start();

class createCaptcha {

    function
generateCode($characters) {

        /* list all possible characters, similar looking characters and vowels have been removed */
        $possible = '23456789bcdfghjkmnpqrstvwxyz';
        $code = '';
        $i = 0;
        while ($i < $characters) {
            $code .= substr($possible, mt_rand(0, strlen($possible)-1), 1);
            $i++;
        }

        return $code;

    }

    function
createCaptcha() {

        $code = $this->generateCode(5);
        $my_img = imagecreatefrompng('button.png');

        $background = imagecolorallocate( $my_img, 0, 0, 255 );
        $text_colour = imagecolorallocate( $my_img, 255, 255, 0 );

        imagestring( $my_img, 4, 20, 3, $code, $text_colour );

        header( "Content-type: image/png" );

        imagepng($my_img);
        imagecolordeallocate($text_color);
        imagedestroy( $my_img );

        $_SESSION['security_code'] = $code;

    }

}


$captcha = new createCaptcha();
?>


In dit geval moet je de code natypen in een inputveld en controleren.

Toevoeging op 02/06/2021 10:06:02:

Hier nog de ontbrekende button.png afbeelding.

Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
<img width="93" height="23" src="data:image/png;base64,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">
Gewijzigd op 01/06/2021 21:31:40 door Adoptive Solution
 



Overzicht Reageren

 
 

Om de gebruiksvriendelijkheid van onze website en diensten te optimaliseren maken wij gebruik van cookies. Deze cookies gebruiken wij voor functionaliteiten, analytische gegevens en marketing doeleinden. U vindt meer informatie in onze privacy statement.