Validatie 3.2

Door Johan Dam, 20 jaar geleden, 6.514x bekeken

Ik was nieuwschierig naar hoe men een afbeelding met letters weergaf welke je moest invoeren om te controleren dat je geen bot was,

Ik had geen zin om het op te zoeken dus ben ik zelf maar met een hele simpele versie begonnen.
dankzij de vele reacties over de onveiligheid van dit script is dit nu al versie 3 en hoewel de veiligheid sterk verbeterd is, is de simpelheid ook iets moeilijker te vinden.

NOTE: let erop dat het script schrijf-rechten heeft gezien het een afbeelding op je server zet!

veranderingen:

- een enkele afbeelding word gegenereerd
- alle letters kunnen weergegeven worden
- de check word per sessie verstuurd,
- kleine aanpassingen voor de leesbaarheid,

De font die ik gebruikte is hetzelfde gebleven als hiervoor maar omdat het nu gegenereerd word zal je je eigen gdf font moeten uploaden of deze gebruiken:
http://nosferatu.890m.com/scripts/validatie/3d.gdf

Voorbeeld: http://nosferatu.890m.com/index.php?page=validation

Gesponsorde koppelingen

PHP script bestanden

  1. validatie-32

 

Er zijn 44 reacties op 'Validatie 32'

PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
Hmm, ik weet niet, denk niet dat dit erg veilig is. (en dan doel ik niet eens op het in je formulier meesturen van de code)
Een bot slaat doorgaans geen cookies op, en gebruikt ook vaak geen JavaScript.

Wat je wel kan doen bijvoorbeeld is met JavaScript zorgen dat je code wordt meegestuurd. De bot zal dit dan niet herkennen, maar dan nog -> Letters kunnen ze tegenwoordig wel herkennen.

Edit:

Ik heb de code even tussen gezet, en daarnaast werkt je voorbeeld niet.
W W
W W
20 jaar geleden
 
0 +1 -0 -1
@Robert, heb voorbeeldje moet over een uurtje of 2 wel weer werken. Hier kan Nosferatu niks aan doen.
Joren de Wit
Joren de Wit
20 jaar geleden
 
0 +1 -0 -1
Dit script levert alleen maar schijnveiligheid! Het komt erop neer dat je formulier alleen maar gebruiksonvriendelijker wordt aangezien je gebruikers nu een nutteloze extra code in moeten voeren.

Nutteloos omdat bots hier dwars doorheen lezen. De validatie code staat notabene in je formulier! Bovendien zijn bots steeds beter in het herkennen van letters, dus dit is echt een fluitje van een cent voor een bot om te omzeilen!

Betere alternatieven zij bijvoorbeeld het in laten vullen een dier op een afbeelding, het laten beantwoorden van een simpele vraag, of een simplele berekening laten uitvoeren waarin de berekening uitgeschreven is.
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
Een bot zal toch niet zo snel herkennen welke letter op de afbeelding staat lijkt me, bovendien zal een bot ook niet zo snel weten welk cijfer voor welke letter staat,

k weet niet zo heel veel van bots dus miss zit k dr naast, zo ja, dan pas k het script aan.

thnx voor de reacties!
Jacco Engel
Jacco Engel
20 jaar geleden
 
0 +1 -0 -1
Quote:
en gebruikt ook vaak geen JavaScript.


Als bots geen javascript herkennen is het dan in dit ajax tijdperk niet makkelijker om gewoon een JSje boven je formulier te zetten met
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
document.getElementById("form_id").action = "actie.php";


Of denk ik nu weer te makelijk?
Joren de Wit
Joren de Wit
20 jaar geleden
 
0 +1 -0 -1
Quote:
k weet niet zo heel veel van bots dus miss zit k dr naast, zo ja, dan pas k het script aan.
Eh ja, je zit er naast. Anders had ik het niet gezegd ;-)

Bovendien hoeft de bot helemaal niet te weten welke letter voor welke cijfer staat. Hij hoef alleen maar net als de gebruiker de juiste waarde in het betreffende input veld in te vullen.
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
kleine verbetering, nu moet de bot dus wel weten waar welke cijfer voor staat ;)
Joren de Wit
Joren de Wit
20 jaar geleden
 
0 +1 -0 -1
Oh ja? Hoezo dan?

Een bot hoeft toch net als een gebruiker alleen maar de getoonde letters in te vullen in het code veld? Jouw script zorgt er wel voor dat deze letters weer omgezet worden naar cijfers...

Bovendien kan de bot nog steeds de waarde van de check uitlezen door even naar de value van je hidden input veld te kijken :S
Robert Deiman
Robert Deiman
20 jaar geleden
 
0 +1 -0 -1
Oftewel, dit is een heel onveilig ding. Ik loop zelf met het idee om bijvoorbeeld woorden te herkennen: Wat voor vorm heeft een bal: ()rond ()vierkant ()ovaal

Bijvoorbeeld, dat is (nog niet) te doen voor een bot, maar voor mensen simpel.
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
@blanche, aan die waarde heeft ie niks, hij moet idd letters invullen maar gezien k dr van uit ga dat plaatjes niet te lezen zijn voor een bot, (wss ten onrechte maar toch) kan een bot niet achterhalen welke letters hij moet invullen omdat hij uit de code enkel cijfers kan halen en niet weet waar deze voor staan,

snap je?
Joren de Wit
Joren de Wit
20 jaar geleden
 
0 +1 -0 -1
Ja dat snap ik. Maar laat de meeste bots die afbeeldingen nou wel gewoon kunnen interpreteren. Dat probleem heb je niet opgelost...
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
dat kan worden verholpen door andere (vagere) afbeeldingen, deze zal ik straks wel maken als ik de tijd heb
PHP Newbie
PHP Newbie
20 jaar geleden
 
0 +1 -0 -1
Als ik op dit moment gewoon de code uit het hidden field "check", in je formulier invul, krijg ik gewoon te zien dat ik een mens ben..

Al je aanpassingen hebben dus nog niets geholpen.
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
de aanpassingen waren nog niet ge-upload ;)

nu inmiddels wel, samen met een nieuwe font
GaMer B
GaMer B
20 jaar geleden
 
0 +1 -0 -1
Verander dit ook nog even:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$check = $_POST['check'];

in dit:
Code (php)
PHP script in nieuw venster Selecteer het PHP script
1
$check = strtolower($_POST['check']);

want ik deed iedere keer hoofdletters/caps gebruiken en werd uitgemaakt voor BOTTER :P
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
thnx, k zal ht fixen ;)
Onbekend Onbekend
Onbekend Onbekend
20 jaar geleden
 
0 +1 -0 -1
YOUR HUMAN, wtf betekend dat? Zou mss YOU'RE HUMAN moeten zijn?

Btw, botjes kunnen makkelijk uit de bron halen welke letters er gebruikt worden..
Johan M
Johan M
20 jaar geleden
 
0 +1 -0 -1
Ik vind het idee wel okay, voor een zo "cross-server" mogelijke oplossing is terugvallen op bijvoorbeeld een GD-library soms te simpel gedacht, deze wordt niet altijd ondersteund.

Ik denk dat uitbereiden met diverse soorten afbeeldingen en fonts e.d. een goede optie zou zijn, en dat er iets in gemaakt zou kunnen worden dat "a" niet rechtstreeks verwijst naar bijvoorbeeld "0" of "1", maar dat er een soort van "salt" o.i.d. tussen komt, zodat er variabeler omgegaan wordt met de input (niet 1 op 1 invoer).

Ik denk dat het belangrijk is een ruim aantal verschillende afbeeldingen te hebben en dat bepaalde letters niet rechtstreeks verwijzen naar bepaalde cijfers. Verder zou je het een en ander met sessions kunnen gaan doen, zoals veel captcha's gebruiken. Overigens kan je ook gebruik maken van plaatjes met bijvoorbeeld beetsjes in plaats van letters en cijfers, ook al zullen bots deze ook kunnen gaan herkennen (als ze dat al niet doen).

Het idee lijkt me dus wel okay, ik zou even verder sleutelen aan de manier waarop.

Grz. Johan.
Michiel Prank
Michiel Prank
20 jaar geleden
 
0 +1 -0 -1
ipv de juiste code opslaan in het formulier, maar opslaan in een sessie?
Johan M
Johan M
20 jaar geleden
 
0 +1 -0 -1
Ja, dat lijkt me wel, 'k weet niet of dat de beste oplossing is, maar het is vast beter dan via een form het mee te laten verzenden.

Verder zou ik de code er niet 1 op 1 in zetten, daarmee bedoel ik a = a of a = 0, maar versleuteld bijvoorbeeld.

Ten slotte is een groot aantal verschillende plaatjes belangrijk lijkt me.
Ruud Verbij
Ruud Verbij
20 jaar geleden
 
0 +1 -0 -1
Gast!
Je gebruikt de plaatjes met 0.gif voor de 'a', 1.gif voor de 'b'.
Zo kan zelfs ik nog een bot schrijven om je code te 'kraken'.
Ook al maak je er iets randoms van; dan kan je nog steeds niet elke keer dezelfde gif-file voor dezelfde letter laten staan omdat de bot dat gewoon kan onthouden :)
Kumkwat Trender
Kumkwat Trender
20 jaar geleden
 
0 +1 -0 -1
Ruud dat wil ik zien.. maak jij er ook eentje :P

@Nosferatu,
Je noemt mijn computer HUMAN :S.
een link naar mijn bot ^^. effe net in elkaar geknutseld. omdat iedereen hier over bots hadden. en niemand ereen maakte, heb ik er eentje gemaakt.
link: http://phphulp123.freehostia.com/download.php

verder spreekt het wel voor zich..
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
thnx voor de reacties, dat a = 0, b = 1 is niet zo veilig, dit heb ik ook vermeld, net als de check code verzenden in het formulier,

zoals ik vermeld heb, is dit een script dat mensen laat zien hoe ze een validatie script kunnen maken, een voorbeeldje dus,

en @peter, ht script noemt JOU human, niet je comp :P

ondanks ht feit dat dit als voorbeeldje bedoeld is zal ik ht toch verbeteren zodra ik de tijd vind.

nogmaals thnx voor de feedback!
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
Zo, een hele 'nieuwe' versie 2.0 heb wat dingetjes verbeterd,

@ Peter, je bot werkt niet meer :P
PHP Newbie
PHP Newbie
20 jaar geleden
 
0 +1 -0 -1
Waarom laat je PHP geen plaatje creëren met dat lettertype?
Kumkwat Trender
Kumkwat Trender
20 jaar geleden
 
0 +1 -0 -1
Quote:
en @peter, ht script noemt JOU human, niet je comp :P

en nu noemt ie mij plus mijn computer een mens :S.. maak is even een goed scriptje :(

Quote:
nosferatu schreef op 04.02.2008 09:13
thnx voor de reacties, dat a = 0, b = 1 is niet zo veilig, dit heb ik ook vermeld, net als de check code verzenden in het formulier,


nou nu is ie veiliger... (dus niet!!)

Quote:
nosferatu schreef op 04.02.2008 15:58
Zo, een hele 'nieuwe' versie 2.0 heb wat dingetjes verbeterd,

@ Peter, je bot werkt niet meer :P


zoww jij bent blij.. zie mijn update bot

en have fun! :)
link: http://phphulp123.freehostia.com/download.php
GaMer B
GaMer B
20 jaar geleden
 
0 +1 -0 -1
Wil je het bots moeilijk maken, dan zul je de code live moeten genereren. Zodat je één plaatje hebt, waar geen enkele logica in zit qua bestandsnaam en dergelijken.
Kumkwat Trender
Kumkwat Trender
20 jaar geleden
 
0 +1 -0 -1
bedankt voor de tip gamert :(. nu wordt het moeilijker, een bot te maken .. :S

:P
Jelle Posthuma
Jelle Posthuma
20 jaar geleden
 
0 +1 -0 -1
Door middel van een GD-Library met een hele vage font.
Jelle -
Jelle -
20 jaar geleden
 
0 +1 -0 -1
Zelf een font maken met je muis+paint :P
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
versie 3.0 dan maar weer :P

zie de beschrijving voor de veranderingen.
Jelle -
Jelle -
20 jaar geleden
 
0 +1 -0 -1
al een stuk beter, alleen moet je wel een nieuw plaatje knop maken (sommige zijn echt heel onduidelijk)
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
ja, maar dat is een questie van een mooi doch vaag lettertype vinden ;)
GaMer B
GaMer B
20 jaar geleden
 
0 +1 -0 -1
Een hele verbetering zeg. Dit begint inderdaad al ergens op te lijken. En nu jij peter :P
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
dank je, dit script is alleen zeeeer hindelijk voor slechtziende... natuurlijk kan k dan wel het plaatje vergroten ofzo, maar slechtziende zullen toch moeite hebben met het vage lettertype... en een duidelijk lettertype is weer te lezen door bots... weet iemand een andere oplossing?
GaMer B
GaMer B
20 jaar geleden
 
0 +1 -0 -1
Ik zou zeggen: klik
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
goeie site idd :) kijken of er een font tussen zit die slechtziende goed kunnen lezen en bots niet....
Onbekend Onbekend
Onbekend Onbekend
20 jaar geleden
 
0 +1 -0 -1
Slechtziende kunnen niet goed lezen..
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
daarom zoek ik een manier om duidelijker weer te geven welke letters je in moet voeren zonder dat het ook makkelijker word voor bots,

grotere plaatjes helpen slechts gedeeltelijk omdat de lettertype daar niet (zoveel) duidelijker van word
Robin de Vries
Robin de Vries
20 jaar geleden
 
0 +1 -0 -1
ik ben goedziend en ik kan het nu helemaal niet meer lezen...
PHP Newbie
PHP Newbie
20 jaar geleden
 
0 +1 -0 -1
Het font is nu te slecht..
Johan Dam
Johan Dam
20 jaar geleden
 
0 +1 -0 -1
Font verbeterd en nog wat kleine dingen in het voorbeeld verbeterd
Lex Nonavailable
Lex Nonavailable
20 jaar geleden
 
0 +1 -0 -1
je font is verdwenen...
PHP hulp
PHP hulp
0 seconden vanaf nu
 

Gesponsorde koppelingen
Tikkes C
Tikkes C
20 jaar geleden
 
0 +1 -0 -1
Even offtopic:

- een enkele afbeelding wordT gegenereerd
- de check wordT per sessie verstuurd,

Om te reageren heb je een account nodig en je moet ingelogd zijn.

Inhoudsopgave

  1. validatie-32

Labels

  • Geen tags toegevoegd.

Navigatie

 
 

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.