Hoi mensen,

Ik ben voor het eerst bezig met jQuery. Best interessant. Al doende kreeg ik een idee voor een captcha. Javascript moet dan wel aanstaan. Ik geloof echter dat zeer weinig mensen dat uit hebben staan. Maar een robot werkt daar naar mijn weten niet mee.

Wat vinden jullie van het idee?

<?php
$code = strtoupper(substr(md5(time()), 0, 8));
?>

<!DOCTYPE html>
<html>
<head>
	<title>Testing</title>
	<script src="http://code.jquery.com/jquery-latest.js"></script>
</head>
<body>
	<div>
		<form action="" method="post">
			<p>Naam: <input type="text" name="naam" value=""/></p>
			<p>Password: <input type="password" name="password" value=""/></p>
			<p><input id="hidden" type="hidden" name="hidden" value=""/></p>
			<p>Login met code: <button><?php echo $code; ?></button></p>
		</form>
	</div>
	<script>
		$("button").click(function () {
			var text = $(this).text();
			$("#hidden").val(text);
			$(this).css('display','inline').fadeOut(1000);
		});
	</script>
</body>
</html>
Ze kunnen de code gewoon uit de broncode rippen en invullen. Ik heb dit nog nooit zo gezien dus het werkt misschien tegen de wat simpelere botjes. Maar zodra het een gerichte aanval is ben je alsnog de klos.
- Mark - op 08/01/2012 00:14:38

Ze kunnen de code gewoon uit de broncode rippen


Lachen, heb ik helemaal niet bij stilgestaan. Ik werkte nooit met Javascript en jQuery. Maar ik ben het nu aan het verkennen en dit is wel een belangrijk verschil met php natuurlijk.
Wat je natuurlijk wél kunt doen is de string pas verwerken in javascript. je kunt de bot dan op het verkeerde been zetten door de eerste code in de broncode te gooien, die ophalen en verwerken in javascript en vervolgens weer wegschrijven met javascript. De bot ziet de oude code, de eindgebruiker ziet de vernieuwde code.

Zomaar een idee hoor ;-)
Precies... behalve dan dat dit idee finaal de mist ingaat als de gebruiker geen javascript heeft geinstalleerd of heeft uitgeschakeld.
Ozzie PHP op 08/01/2012 01:41:59

Precies... behalve dan dat dit idee finaal de mist ingaat als de gebruiker geen javascript heeft geinstalleerd of heeft uitgeschakeld.


Ben jij ooit wel eens iemand tegengekomen die geen Javascript heeft?
Nee, de meeste gebruikers weten niet dat het uit kan de meeste weten zelfs niet wat JavaScript is... Vervolgens hou je een zeer kleine groep over waarvan de meeste zelf developer zijn, die weten dat JavaScript gewoon aan moet dus heel weinig mensen hebben het uit staan.

En dat allemaal rekening houden met geen JavaScript is nergens voor nodig, 99,99% van je bezoekers heeft het aan staan.
Leuk dat dit nu gezegd wordt, maar ik heb deze discussie hier al eens eerder aangezwengeld. De conclusie was toen dat een website ook zonder javascript nog moet kunnen werken en dat javascript alleen gebruikt moet worden om de user experience te verbeteren.

Je website mag niet afhankelijk zijn van het gebruik van javascript. In beide gevallen moet de site nog steeds werken. Dat is in bovengenoemd voorbeeld niet het geval want je kunt niet meer inloggen.

En ja, dat is een kl#te conclusie, want ik zou het ook liever anders zien. En ja, de meeste mensen hebben javascript aan staan. Maar wat dacht je van openbare ruimtes (bijv. internetcafé's in het buitenland) waar het is afgeschermd? Tuurlijk kun je denken dat dat wel zal loslopen, maar je moet je dan wel altijd beseffen dat sommige mensen niet zullen kunnen inloggen. Het is dus een keuze die je maakt.
Niet zo serieus hoor Ozzie. Het was maar een idee, ontstaan vanuit mijn eerste jQuery ervaringen. Het staat niet voor niks in de Koffiehoek. Het is mij al duidelijk dat ik dit bij mijn 'vage' ideeën stop, niet echt haalbaar.
Hehe... lol. In de vage ideeënbak ermee! :)
Je zou het wel kunnen doen als de je code genereert met JS. Dan staat er nergens de code, doe dit dan wel in een global scope zodat je niet met de console alsnog de code kunt opvragen.

Ik heb ooit eens Japtcha gemaakt, zal eens kijken of ik die weer kan vinden. Werkte ook volledig met JS.

Reageren