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.
Link gekopieerd
Of alles achter een login zetten.
Link gekopieerd
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.
Link gekopieerd
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.
Link gekopieerd
Is dit wat?
Enige vereiste is de tafel van 10.
<?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>
Link gekopieerd
Dit werkt wel, maar bij elke nieuwe request wat een crawler zal uitvoeren word dus steeds een nieuwe $_SESSION['numsum'] berekent
Hierin dus:
<?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
Link gekopieerd
In een ver verleden bij KPN gevonden :
<?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.
[size=xsmall]
Toevoeging op 02/06/2021 10:06:02: [/size]
Hier nog de ontbrekende button.png afbeelding.
<img width="93" height="23" src="data:image/png;base64,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">
Link gekopieerd