Toon posts:

Clientside of serverside formulier validatie?

Pagina: 1
Acties:
  • 104 views sinds 30-01-2008
  • Reageer

Verwijderd

Topicstarter
Ik moet even een formulier zo aanpassen dat ie de ingevoerde waarden checkt. In het formulier staan enkele text velden die verplicht worden gesteld.

De website wordt gehost op Vevida en er kan aldus gebruik gemaakt worden van ASP. Op dit moment worden de waarden van het formulier na submit gemailed naar een medewerker en in een Access database gepompt.

De doelgroep, diegene die het formulier gaan invullen, zijn veelal studenten. Ondanks dat IE veel gebruikt wordt, denk ik toch dat er enkele zijn die met Netscape werken op hun school/universiteit.

Wat zouden jullie doen? Client- of server-side validatie? Of een combi van beide?

Welke scripttaal zouden jullie gebruiken en weten jullie hiervoor goede voorbeelden te vinden?

  • whoami
  • Registratie: December 2000
  • Laatst online: 17:40
Client-side validatie.
Als je het server-side doet, moet je alles eerst posten naar de webserver, en dat werkt dan veel trager. Ik denk dat het op de zenuwen van uw gebruikers zou werken.

https://fgheysels.github.io/


Verwijderd

Op zondag 23 juni 2002 11:37 schreef whoami het volgende:
Client-side validatie.
Als je het server-side doet, moet je alles eerst posten naar de webserver, en dat werkt dan veel trager. Ik denk dat het op de zenuwen van uw gebruikers zou werken.
waarom trager, het formulier moet toch gepost worden dus, en die snelheid valt reuze mee, je checked als alles klopt mag ie verder anders moet ie nog even 2 dingen oid invullen.. naja of hij moet het in 1 keer goed invullen, zijn meestal luilakken die niet alles willen invullen .. maar snel op VERZENDEN willen drukke imho

  • zoepercavia
  • Registratie: September 2001
  • Laatst online: 26-12-2025
clientside validatie is vaak veruit de netste oplossing vanwege een aantal redenen:
- je kan direct (op dezelfde pagina) feed backgeven
- het scheelt processor tijd op de server
- het maaktje server side code overzichtelijker

ik maak meestal gebruik van JavaScript om formpjes te controleren (ev. in combinatie met dhtml). Wat betreft netscape op uni's, meeste uni's gebruiken eigenlijk geen ns4 meer. Ik studeer geneeskunde in groningen en daar zijn ze een half jaar geleden overgegaan op IE5.5 en de medische faculteit is wat IT betreft wel zo'n beetje de traagste, dus daar hoef je je niet druk over te maken. Mozilla 1.0, NS6+ en IE4.0+ moeten het allemaal wel aankunnen...

Panacea.NL als je geinteresserd bent in IT en Geneeskunde!


Verwijderd

Ik zal altijd zowel client- als serverside validatie toepassen. Client side omdat dit voor de eind gebruiker heel prettig is (die krijgt immers direct feed-back). Dit kan eigenlijk alleen in Javascript.
Serverside is eigenlijk ook verplicht om de kwaliteit van de data in de DB te garanderen en vreemde tekens te escapen...

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Clientside validatie is te omzeilen.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • cutter
  • Registratie: November 2000
  • Laatst online: 28-09-2025

cutter

Wannabe i7 fanboy

Clientside javascript gebruiken met regular expressions voor form validation.
In google taal is dat:
http://www.google.nl/search?hl=nl&ie=UTF-8&oe=UTF8&q=form+validation+site%3Airt.org&lr=

Om de reden dat het veel sneller werkt zoals whoami al meldde.

Verwijderd

Als je het echt netjes wil doen moet je allebei doen. De client side validatie kan omzeild worden door de html code te jatten en dan de client side scripts er uit te halen (al komt dat niet zo vaak voor denk ik).

Clientside kan soms ook niet alles doen. Bijvoorbeeld een username die uniek moet zijn moet eerst gekeken worden in de database.

Clienside is natuurlijk wel sneller en bespaart server load, maar het kan ook alleen serverside.

  • zoepercavia
  • Registratie: September 2001
  • Laatst online: 26-12-2025
Op zondag 23 juni 2002 11:42 schreef Xenith het volgende:
Als je het echt netjes wil doen moet je allebei doen. De client side validatie kan omzeild worden door de html code te jatten en dan de client side scripts er uit te halen (al komt dat niet zo vaak voor denk ik).
Ja dat kan wel, maar vind ik voor kleine projectjes geen reden om dan nog 's extra server side te gaan controleren. Als je nou een webwinkel maakt is het een ander verhaal...

Panacea.NL als je geinteresserd bent in IT en Geneeskunde!


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op zondag 23 juni 2002 11:41 schreef Delphi het volgende:
Clientside validatie is te omzeilen.
Niet als je het goed doet.

  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 03-09 15:18

Crazy D

I think we should take a look.

Op zondag 23 juni 2002 11:45 schreef zoepercavia het volgende:
Ja dat kan wel, maar vind ik voor kleine projectjes geen reden om dan nog 's extra server side te gaan controleren. Als je nou een webwinkel maakt is het een ander verhaal...
Ik zou zeggen, doe wat je niet laten kunt... sever-side is gewoon een must, dat is de plek waar je uiteindelijk de gegevens verwerkt en in een database oid propt. Client-side is leuk dat de gebruiker direct ziet dat er iets niet klopt, maar is niet meer dan een extraatje. "Alleen maar" een email adres invullen zodat je bv site-updates kunt mailen is op zich niet zo groot en heftig te noemen, maar daar kan al genoeg mis mee gaan...

Exact expert nodig?


  • Crazy D
  • Registratie: Augustus 2000
  • Laatst online: 03-09 15:18

Crazy D

I think we should take a look.

Op zondag 23 juni 2002 12:02 schreef Bosmonster het volgende:
Niet als je het goed doet.
Hoezo, niet als je het goed doet... Client-side validatie _is altijd_ te omzeilen (telnet anyone?), server-side is _nooit_ te omzeilen.

Exact expert nodig?


  • Dennis
  • Registratie: Februari 2001
  • Laatst online: 12:35
Beide.

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Het beste is altijd om Client- side en ServerSide validatie te gebruiken.
Ik denk dat het idd gebruiksvriendelijker is om gegevens die client-side te controleren zijn (bijv of een veld is ingevuld) ook client-side gecontroleerd moeten worden.
Dit vanwege de response tijd.

Toch neemt dat niet weg dat je ook altijd Serverside je variabelen moet checken voor ze bijv. de Database in gaan.

Client side validatie is altijd te omzeilen, omdat je altijd zelf een handmatige post kan genereren ;)

It’s nice to be important but it’s more important to be nice


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op zondag 23 juni 2002 12:06 schreef Crazy_D het volgende:

[..]

Hoezo, niet als je het goed doet... Client-side validatie _is altijd_ te omzeilen (telnet anyone?), server-side is _nooit_ te omzeilen.
Moet je toch eens uitleggen, uitgaande dat je zoals gewoonlijk een serverside domein-check doet op je formulieren. Maar misschien zie ik iets over het hoofd..

Maar goed.. Clientside validatie is simpelweg gebruikersvriendelijker omdat deze sneller reactie krijgt. Bovendien scheelt het weer contact met de server wat bij veel requests zoals op een board oid nogal kan schelen. Een simpele clientside check of velden leeg zijn bijvoorbeeld kan dan al heel wat schelen.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op zondag 23 juni 2002 12:13 schreef JonkieXL het volgende:

Client side validatie is altijd te omzeilen, omdat je altijd zelf een handmatige post kan genereren ;)
Dat bedoel ik.. das dus heel simpel te voorkomen in je javascript-code door simpelweg de submit() te overschrijven.

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Je zal het er mee eens moeten zijn dat je altijd iets van validatie op je server moet doen.

Ik kan jouw script toch eenvoudig weg aanroepen in de URL
bijv. www.domein.nl/script.php?naam=blaat

It’s nice to be important but it’s more important to be nice


Verwijderd

Op zondag 23 juni 2002 12:02 schreef Bosmonster het volgende:

[..]

Niet als je het goed doet.
nou geef mij maar een voorbeeld van een niet te omzeilen form en wedde dat ik hem leeg post?

ikke zou het serverside doen, daz teminste niet te omzeilen, en dan kun je gelijk een sjek doen dat ze niet 10x in een minuut dat form posten, anders kan het worden gebruikt als een mailbom >:)

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Regel 1 van webbased applicaties:

Vertrouw nooit de gegevens die je van een gebruiker krijgt, deze zijn namelijk erg simpel te manipuleren.
Check dus altijd je gegevens server side.


onder de gegevens die je van de gebruiker krijgt vallen ook ip adres en cookies !

  • zoepercavia
  • Registratie: September 2001
  • Laatst online: 26-12-2025
hmm, als je clientside validatie hebt met nette feedback, lijkt het mij wel een beetje overdreven om de server side validatie ook feedback te laten sturen. Want als het niet goed bij de server komt heeft iemand blijkbaar een 'hack'-poging gedaan (of de client-side validatie klopt niet, maar daar gaan we niet vanuit).
Gewoon:
code:
1
if len(veld) = 0 then Response.end

Of denk ik nu te simpel?

Panacea.NL als je geinteresserd bent in IT en Geneeskunde!


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op zondag 23 juni 2002 12:18 schreef Foxboy het volgende:

[..]

nou geef mij maar een voorbeeld van een niet te omzeilen form en wedde dat ik hem leeg post?

ikke zou het serverside doen, daz teminste niet te omzeilen, en dan kun je gelijk een sjek doen dat ze niet 10x in een minuut dat form posten, anders kan het worden gebruikt als een mailbom >:)
Hmm accepted :P

Overigens.. Je moet voordat je zut in een databse plempt ofzo ALTIJD nog checken.. het gaat hier meer om het voorkomen van dataverkeer enzo.

het een elimineert niet het ander imho.

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Op zondag 23 juni 2002 12:21 schreef zoepercavia het volgende:
hmm, als je clientside validatie hebt met nette feedback, lijkt het mij wel een beetje overdreven om de server side validatie ook feedback te laten sturen. Want als het niet goed bij de server komt heeft iemand blijkbaar een 'hack'-poging gedaan (of de client-side validatie klopt niet, maar daar gaan we niet vanuit).
Gewoon:
code:
1
if len(veld) = 0 then Response.end

Of denk ik nu te simpel?
Ja dat kun je doen, maar het kan ook een per ongelukke hack zijn. GOT heeft ook leuke hack foutmeldingen geloof ik :)

It’s nice to be important but it’s more important to be nice


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op zondag 23 juni 2002 12:21 schreef zoepercavia het volgende:
hmm, als je clientside validatie hebt met nette feedback, lijkt het mij wel een beetje overdreven om de server side validatie ook feedback te laten sturen. Want als het niet goed bij de server komt heeft iemand blijkbaar een 'hack'-poging gedaan (of de client-side validatie klopt niet, maar daar gaan we niet vanuit).
Gewoon:
code:
1
if len(veld) = 0 then Response.end

Of denk ik nu te simpel?
En als ik nu een spatie/tab/enter post?

  • pjonk
  • Registratie: November 2000
  • Laatst online: 29-12-2025
Eerst altijd ff trimmen he :)

It’s nice to be important but it’s more important to be nice


  • zoepercavia
  • Registratie: September 2001
  • Laatst online: 26-12-2025
En als ik nu een spatie/tab/enter post?
ok ok, misschien een beetje ongelukkig voorbeeld >:)
code:
1
if isEmpty(veld) then Response.End

is misschien beter...

Panacea.NL als je geinteresserd bent in IT en Geneeskunde!


  • _DeWie_
  • Registratie: November 2001
  • Laatst online: 10-04 16:23
Clientside is alleen nuttig om de snelheid van het formulier te vergroten.
Je zult er toch niet aan ontkomen om ook serverside te controleren.
De afweging is dus puur de snelheid....

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op zondag 23 juni 2002 12:32 schreef _DeWie_ het volgende:
Clientside is alleen nuttig om de snelheid van het formulier te vergroten.
Je zult er toch niet aan ontkomen om ook serverside te controleren.
De afweging is dus puur de snelheid....
Clientside is toch ook iets vriendelijker voor de gebruiker.
En is veiligheid geen afweging???

Ik zou er gewoon voor kiezen beide te maken. Client side is dan vriendelijk en snel, en voor de 'hackers' is er een server side check.

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • PowerSp00n
  • Registratie: Februari 2002
  • Laatst online: 07:27

PowerSp00n

There is no spoon

Iniedergeval server side checken. En misschien clientside om het voor de gebruiker iets gemakkelijker te maken ofzo.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

http://bosmonster.b2f.nl/formtest/test.html

Als iemand iets anders gepost krijgt dan "Bosmonster" dan wil ik wel eens weten hoe :)

Als je als antwoord 'fuckhoofd' krijgt dan is het niet gelukt.

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op zondag 23 juni 2002 12:43 schreef Bosmonster het volgende:
http://bosmonster.b2f.nl/formtest/test.html

Als iemand iets anders gepost krijgt dan "Bosmonster" dan wil ik wel eens weten hoe :)
Hoe kan ik het bewijzen?

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op zondag 23 juni 2002 12:43 schreef Bosmonster het volgende:
http://bosmonster.b2f.nl/formtest/test.html

Als iemand iets anders gepost krijgt dan "Bosmonster" dan wil ik wel eens weten hoe :)

Als je als antwoord 'fuckhoofd' krijgt dan is het niet gelukt.
http://www.d2k.nl/got/d2k.html

daarom dus serverside :)
.edit: bekijk de bron ff ;)

Doet iets met Cloud (MS/IBM)


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op zondag 23 juni 2002 12:44 schreef Delphi het volgende:

[..]

Hoe kan ik het bewijzen?
Maak maar screenshotje.. en niet gaan lopen fotosjoppen :P

Er staat gewoon: Posted: "Bosmonster" of iets anders dus.

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op zondag 23 juni 2002 12:46 schreef D2k het volgende:

[..]

http://www.d2k.nl/got/d2k.html

daarom dus serverside :)
.edit: bekijk de bron ff ;)
:? Wat heb je daarmee bereikt dan :?

Maar goed.. ik moet ff weg.. check wel als ik terug ben ;)

  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op zondag 23 juni 2002 12:48 schreef Bosmonster het volgende:

[..]

:? Wat heb je daarmee bereikt dan :?
ik mag wat anders posten dan Bosmonster ;)
zo kan ik al je checks omzeilen ;)

Doet iets met Cloud (MS/IBM)


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op zondag 23 juni 2002 12:48 schreef D2k het volgende:

[..]

ik mag wat anders posten dan Bosmonster ;)
zo kan ik al je checks omzeilen ;)
Je mag nog steeds niks anders posten dan Bosmonster :P

Want zoals ik al zei zit er ook een referer check enzo die niet kijken naar de form-waarden, maar iets wat ik gewoon altijd gebruik in formulieren. Geen validatie dus.

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op zondag 23 juni 2002 12:49 schreef Bosmonster het volgende:

[..]

Je mag nog steeds niks anders posten dan Bosmonster :P
kheb alleen de tekst niet aangepast maar alleen D2k mag ingevuld in de mijne
Want zoals ik al zei zit er ook een referer check enzo die niet kijken naar de form-waarden, maar iets wat ik gewoon altijd gebruik in formulieren. Geen validatie dus.
ook dat kan je beter serverside doen ;) hoewel dat ook gewoon te faken is

Doet iets met Cloud (MS/IBM)


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

:Z :Z
Posted: wasigh

fuckhoofd
code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<!-- saved from url=(0043)http://bosmonster.b2f.nl/formtest/test.html -->
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=windows-1252">
<SCRIPT type=text/javascript>
function checkForm(frm){
    if(frm.naam.value != "Bosmonster"){
        alert("fuckhoofd");
        return false;
    }   return true;
}
</SCRIPT>

<META content="MSHTML 6.00.2600.0" name=GENERATOR></HEAD>
<BODY >Alleen "Bosmonster" is goed
:P<BR><BR>
<FORM name="testform"  action="http://bosmonster.b2f.nl/formtest/post.php"
method=post><INPUT name=naam> <INPUT type=submit value=submit>
</FORM></BODY></HTML>

  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op zondag 23 juni 2002 12:49 schreef Bosmonster het volgende:

[..]



Want zoals ik al zei zit er ook een referer check enzo die niet kijken naar de form-waarden, maar iets wat ik gewoon altijd gebruik in formulieren. Geen validatie dus.
Server-side dus :D

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Heb hem een beetje aangepast, zie: http://vos.homeip.net/~jelmer/postform.php

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

ok.. maar hij zegt fuckhoofd :P

oftewel het is gedetecteerd :P

Was misschien wat onduidelijk...

Maar goed.. jullie hebben gelijk, het moet ook serverside.. daar ben ik het mee eens (zoals ik al paar keer zei).

Maar als eerste 'laag' is een clientside check gewoon simpel en snel.

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op zondag 23 juni 2002 12:55 schreef Bosmonster het volgende:
ok.. maar hij zegt fuckhoofd :P

oftewel het is gedetecteerd :P
Server side ja! Je hele client side validatie is weg!

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

Op zondag 23 juni 2002 12:55 schreef Bosmonster het volgende:
ok.. maar hij zegt fuckhoofd :P

oftewel het is gedetecteerd :P
Ja maar niet client side ;)

Je kunt checken op referrer, maar die is ook te faken zoals hierboven gedemonstreerd wordt.
Je kunt checken op IP waar dan moet je maar eens gaan zoeken op IP-spoofing op google..

Data die je van een gebruiker krijgt is er definitie niet te vertrouwen! (geloof dat nou...)

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op zondag 23 juni 2002 12:56 schreef wasigh het volgende:

[..]

Ja maar niet client side ;)
Ik was eerder. :)


Voor de liefhebbers, de source:
PHP:
1
<?    function SendData($sdata) {         $rdata = "";          $fp = fsockopen("bosmonster.b2f.nl", 80, $errno, $errstr, 5);          if (!$fp) {            return "";         } else {              fputs($fp, $sdata);             while(!feof($fp)) {                  $rdata = $rdata . fgets($fp, 128);              }              fclose($fp);        }        return $rdata;    }    $sdata .= "POST http://bosmonster.b2f.nl/formtest/post.php HTTP/1.0\r\n";    $sdata .= "Accept: *.*, */*\r\n";    $sdata .= "Referer: http://bosmonster.b2f.nl\r\n";    $sdata .= "Accept-Language: nl\r\n";    $sdata .= "Content-Type: multipart/form-data; boundary=---------------------------7d12442eab4\r\n";    $sdata .= "User-Agent: Mozilla/4.0 (compatible; MSIE 5.0; Windows 98; DigExt)\r\n";    $sdata .= "Host: bosmonster.b2f.nl\r\n";    $sdata .= "Content-Length: 242\r\n";    $sdata .= "Proxy-Connection: Keep-Alive\r\n";    $sdata .= "Pragma: no-cache\r\n";    $sdata .= "\r\n";    $sdata .= "-----------------------------7d12442eab4\r\n";    $sdata .= "Content-Disposition: form-data; name=\"name\"\r\n";    $sdata .= "\r\n";    $sdata .= "SUKKEL\r\n";    $sdata .= "-----------------------------7d12442eab4\r\n";    $sdata .= "Content-Disposition: form-data; name=\"Submit\"\r\n";    $sdata .= "\r\n";    $sdata .= "Submit\r\n";    $sdata .= "-----------------------------7d12442eab4--\r\n";    $sdata .= "\r\n";    $rdata = SendData($sdata);    echo "<b>Verzonden:</b><br><br><pre>" . htmlspecialchars($sdata) . "</pre>";    echo "<hr>";    echo "<b>Ontvangen:</b><br><br><pre>" . htmlspecialchars($rdata) . "</pre>";?>

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

hehehe

De waarde zelf is niet gevalideerd (daar ging het om), maar de POST-omstandigheden.

Maar jullie zijn te goed... hier ga ik waanzinnig op mn bek :P

  • jelmervos
  • Registratie: Oktober 2000
  • Niet online

jelmervos

Simple user

Op zondag 23 juni 2002 12:57 schreef Bosmonster het volgende:
[..]

Maar jullie zijn te goed... hier ga ik waanzinnig op mn bek :P
Ach, je leert er alleen maar van. Iedereen maakt wel es fouten.

Vertrouw nooit de input van de client

"The shell stopped unexpectedly and Explorer.exe was restarted."


  • D2k
  • Registratie: Januari 2001
  • Laatst online: 31-08 10:19

D2k

Op zondag 23 juni 2002 12:57 schreef Bosmonster het volgende:
Maar jullie zijn te goed... hier ga ik waanzinnig op mn bek :P
*D

Doet iets met Cloud (MS/IBM)


Verwijderd

Topicstarter
Pfff wat een hoop reacties... :P

Ik kom net tot de ontdekking dat de website en het formulier uberhaupt niet goed wordne weergegeven met Netscape (iig Mozilla). Disclaimer: ik heb hem niet gemaakt.

Maareh ik ga toch maar voor zowel client als server side validatie. Client-side maar in Javascript (je weet nooit welke browser ze gebruiken), server-side maar VB.

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Ik heb zelf een form-lib geschreven welke formpjes genereert en zelf ook valideert.. Moet alleen nog even de tijd nemen om hem ook client-side validatie te laten genereren...

Als je veel formuliertjes maakt welke er veelal hetzelfde uitzien is het zeker de moeite waard om je validatie te standariseren en te hergebruiken, validatie is simpel, maar wel erg saai :(

  • Bosmonster
  • Registratie: Juni 2001
  • Laatst online: 29-08 19:47

Bosmonster

*zucht*

Op zondag 23 juni 2002 14:55 schreef brammetje het volgende:
Ik heb zelf een form-lib geschreven welke formpjes genereert en zelf ook valideert.. Moet alleen nog even de tijd nemen om hem ook client-side validatie te laten genereren...

Als je veel formuliertjes maakt welke er veelal hetzelfde uitzien is het zeker de moeite waard om je validatie te standariseren en te hergebruiken, validatie is simpel, maar wel erg saai :(
Ik heb zelf een standaard formvalidator die in principe alles kan valideren, maar ook een mogelijkheid heeft om hier achteraan nog een custom validatie te plakken. Alles RegExp-based en in een scriptje van nog geen 3K.

http://bosmonster.b2f.nl/formval/formval.html

Heb m gemaakt en onderhouden voor collega's, maar tis geen rocketscience dus jat wat je niet laten kunt ;)

  • brammetje
  • Registratie: Oktober 2000
  • Laatst online: 12-01-2025
Op zondag 23 juni 2002 16:06 schreef Bosmonster het volgende:
Heb m gemaakt en onderhouden voor collega's, maar tis geen rocketscience dus jat wat je niet laten kunt ;)
tnx, het ziet er netjes uit :) zelf ben ik niet zo'n javascript-held dus dit komt wel van pas :)

Verwijderd

Op zondag 23 juni 2002 12:43 schreef Bosmonster het volgende:
http://bosmonster.b2f.nl/formtest/test.html

Als iemand iets anders gepost krijgt dan "Bosmonster" dan wil ik wel eens weten hoe :)

Als je als antwoord 'fuckhoofd' krijgt dan is het niet gelukt.
Heel erg grappig hoor, maar ik weet niet WAAROM iedereen moeilijk doet maar in IE kun je gewoon javascript uitzetten hè, dus dan is het NOOIt veilig :D ik krijg gewoon vanalles gepost iig ;)

Afbeeldingslocatie: http://www.woppa.nl/sites/zooi/hehe.gif

  • crisp
  • Registratie: Februari 2000
  • Laatst online: 18:36

crisp

Devver

Pixelated

Checken op referer is gewoon niet aan te raden; ik heb vaak genoeg klachten gehad van gebruikers dat ze een form niet konden invullen. Uiteindelijk bleek dan altijd een lege referer de reden te zijn; oftewel de browser van de client stuurde deze gewoon niet mee!

Intentionally left blank


  • wasigh
  • Registratie: Januari 2001
  • Niet online

wasigh

wasigh.blogspot.com

* wasigh heeft ooit het dForm (dynamic Form) systeem ontwikkeld waarmee mbv XML forumulieren gegeneerd en gavalideerd kunnen worden...

Helaas geen tijd om hem af te maken (standaard zou ook in PHP geimplementeerd kunnen worden, prototype draait natuurlijk in java..)

  • TheOneLLama
  • Registratie: Oktober 2000
  • Laatst online: 20-01-2022

TheOneLLama

A llama like no llama before

Op zondag 23 juni 2002 12:02 schreef Bosmonster het volgende:

[..]

Niet als je het goed doet.
Als je onder "goed doet" verstaat dat je het ook serverside uitprogameerd niet nee..

Ander: start->run->opera->f12->disable javascript
of
telnet www.jouwpagina.nl 80

Opera OpenOffice.org Jabber Psi jabber://llama@mordax.com


  • Yohost!
  • Registratie: Juni 2000
  • Laatst online: 15:34
Belangrijk is ook altijd te checken op $HTTP_POST_VARS.
Die zijn namelijk echt gepost en dus geen GET.

Verwijderd

Op maandag 24 juni 2002 11:19 schreef Yohost! het volgende:
Belangrijk is ook altijd te checken op $HTTP_POST_VARS.
Die zijn namelijk echt gepost en dus geen GET.
Maar ook POST-vars zijn te faken...

Verwijderd

Ik check altijd serverside, ongeacht of ik clientside al gechecked heb. Ik heb geen zin in mogelijke corruptie in een database, en een evt boze klant aan de telefoon.

Dat beetje extra tijd dat ik kwijt ben aan serverside validatie voorkomt nog meer tijd kwijt zijn aan reparatie, telefoontjes, en debugging.

  • TheOneLLama
  • Registratie: Oktober 2000
  • Laatst online: 20-01-2022

TheOneLLama

A llama like no llama before

Op maandag 24 juni 2002 11:19 schreef Yohost! het volgende:
Belangrijk is ook altijd te checken op $HTTP_POST_VARS.
Die zijn namelijk echt gepost en dus geen GET.
Belangrijk is dat je serverside gewoon alle velden checkt. Er is geen enkele manier waarop je serverside kan weten of er client side een javascript is uitgevoerd. Als je in Opera of (kennelijk) IE javascript uitzet wordt er ook gewoon een POST gedaan. Dan kun je ten slotte nog dingen gaan doen als zorgen dat je submit ook via een javascript gaat ofzo maar dan past iemand anders die pagina weer ff aan of desnoods ga je een met een telnet progje erheen en tik je die post zelf.

Opera OpenOffice.org Jabber Psi jabber://llama@mordax.com


  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Mocht het nog niet duidelijk zijn:
Altijd serverside de ingevoerde waarden verifieren.
Daarbij dus ook controleren of de ingevoerde integers wel getallen binnen het gewenste bereik zijn en of strings geen karakters bevatten die niet mogen (html, ' etc) of vervangen moeten worden.

Dat je het evt ook clientside al valideert om een snellere respons voor de client te krijgen is leuk en handig.
Maar bij zeker niet voldoende.

Btw, browsen met lynx is ook nog een optie om dat ding van bosmonster open te kraken.

Een referercheck is ook niet zo handig, als je 'zeker' wilt weten dat iemand van de goede pagina komt kan je beter wat leuke waarden in een sessie stoppen.

Verwijderd

Op zondag 23 juni 2002 11:41 schreef Delphi het volgende:
Clientside validatie is te omzeilen.
Dat wordt al een stuk moeilijker als je gebruik maakt (JScript) van:
code:
1
document.'formulier'.submit()

Vaak wordt hiervoor 'return false' gebruikt en dat is te makkelijk te omzijlen.
En client + serverside kan natuurlijk ook geen kwaad.

  • leonardo1504
  • Registratie: April 2001
  • Niet online
Op zondag 23 juni 2002 12:02 schreef Bosmonster het volgende:

[..]

Niet als je het goed doet.
Jawel, client-side is ALTIJD te omzeilen. Als je een POST-request of een GET-request kan genereren, kan je altijd om client-side validatie heen.

- clientside validatie is vaak het meest gebruikersvriendelijk
- voor security MOET je serverside validatie gebruiken. Dan valideer je dus andere aspecten van de input dan bij clientside validaties.


/edit typo

  • ACM
  • Registratie: Januari 2000
  • Niet online

ACM

Software Architect

Werkt hier

Op maandag 24 juni 2002 11:29 schreef Takar het volgende:
Dat wordt al een stuk moeilijker als je gebruik maakt (JScript) van:
code:
1
document.'formulier'.submit()

Vaak wordt hiervoor 'return false' gebruikt en dat is te makkelijk te omzijlen.
En client + serverside kan natuurlijk ook geen kwaad.
Als je browser geen jscript gebruikt/uitvoert zal ie zich daardoor niet gestopt voelen hoor...

Maar dan hou je alsnog de net-requests (telnet, php-scripts etc) over.
Pagina: 1