die in javascript?

Status
Niet open voor verdere reacties.

rikietje

Gebruiker
Lid geworden
17 nov 2010
Berichten
154
Hallo ik heb een vraagje, op internet wordt ik er niet veel wijzer van.

Ik heb het volgende script :

PHP:
<script type="text/Javascript">
<!--

function antibot(){
	var antibotcheck = prompt("Hallo, om spam te voorkomen moet je het volgende woord opgeven : gastenboek.", "")
	if(antibotcheck == "gastenboek" ){
	}
	else{
		alert('AntiBot check mislukt. Bericht is niet toegevoegd aan het gastenboek.')
		// Hier moet een die() komen??
	}
}
//-->
</script>

Op de plaats waar staat hier moet een die() komen.
Zou ik een soort van code willen. (als dat bestaat) die gelijk is aan de die(); in PHP.

Ofwel, dat de pagina niet verder gaat met het uitvoeren van de rest van het script.

Zoals ik al zei, ik heb gegoogled maar werd er niet veel wijzer van.

Bestaat een dergelijke code?
 
Laatst bewerkt:
1) Klopt, zo start je het.

2) klopt, en KeyString kan van alles zijn. ook bv het ip-adres van de gebruiker

3)

<input type="hidden" name="spamBot" value="" />

4) Nee, ik geloof dat dat niet werkt. want dan krijg je een session error dat die al gestart is. Tenzij je een check doet of sessions al gestart is.

Als je het in php wilt gaan uitvoeren. zul je het beter een nieuwe thread maken in php
 
1) Klopt, zo start je het.

2) klopt, en KeyString kan van alles zijn. ook bv het ip-adres van de gebruiker

3)

<input type="hidden" name="spamBot" value="" />

4) Nee, ik geloof dat dat niet werkt. want dan krijg je een session error dat die al gestart is. Tenzij je een check doet of sessions al gestart is.

Als je het in php wilt gaan uitvoeren. zul je het beter een nieuwe thread maken in php


Oke bedankt voor je antwoorden, er is een boel duidelijk nu.

Ik zou mijn pagina dus moeten beginnen met het aanmaken van een session :

PHP:
session_start();

Vervolgens moet ik dus een unique id aanmaken :

PHP:
$uni = md5(date(Ymdhis).$ip);

Daarna moet ik die dus opslaan in de session :

PHP:
 $_SESSION['unique_id'] = $uni ;

Vervolgens raadde je het volgende aan :
2) bv name uni en die geef je een uniek nummer die je met php genereer.
bv md5(date(ymd)."KeyString"). die sla je ook op in een SESSION.
Op de verwerkingspagina vergelijk je de $_POST tegen de $_SESSION
(zo zorg je dat de verwerkingspagina niet zonder je form gebruikt kan worden)
Aan het einde van de verwerkingspagina vernietig je de session.

Maar wat bedoel je nu precies met de $_POST tegen de $_SESSION vergelijken?
 
Als je het op een pagina wilt houden, dan zou ik beginnen met een check of sessions al gestart is.

Met het vergelijken bedoel ik. Als je het formulier verstuurt dat het unieke nummer in $_POST ook verstuurt wordt.

<input type="hidden" name="uni_id" value=" <PHP echo $inu_id; ?> " />

En dan op de verwerkingspagina heb je $_session en $_post en die kun je vergelijken.
Als die 2 niet hetzelfde zijn dan klopt er iets niet en kun je het verwerken van de gegevens stoppen.
 
En het wordt al weer wat duidelijker.

Weet je zeker dat dit stukje code klopt :

PHP:
<input type="hidden" name="uni_id" value=" <PHP echo $inu_id; ?> " />

Want die werkt niet bij mij .

Klopt die <php wel?

Maar op wat voor manier zou dit spam moeten tegengaan?
 
Alweer iets opgelost!

Ik heb het volgende geprobeerd :

PHP:
$ip = $_SERVER['REMOTE_ADDR'];

$uni = md5(date(Ymdhis).$ip);

$_SESSION['id'] = $uni;

echo "<a href='jstest2.php' > jstest2</a>";
echo "<br /><br />";
echo $uni;


echo "<br /><br />";
echo "<form action='jstest2.php' method='POST' >";
echo "<input type='hidden' name='uni' value=$uni  />";
echo "<input type='submit' />";
echo "</form>";

En dan op de process pagina :

PHP:
<?php
session_start();
require ("require_menu.php");
require ("require_favicon.php");
require ("require_reclame01.php");
echo "<br />";

echo "<div class='div_text_left'>";
echo "de session id =";
echo $_SESSION['id'];
echo "</div>";
echo "<br /><br />";
echo "de post id =";
echo $_POST['uni'];



?>

En ik krijg er mooi 2 id's uitrollen die unique zijn!

Dat is wat we willen toch?
 
op deze manier kunnen niet op je verzend pagina komen zonder toestemming. En weet je zeker dat het bericht verzonden is via je formulier.

en het $inu_id moet het unieke nummer zijn ($uni)

en je pagina moet wel .php zijn, niet .html (Ik meld het maar ff)
 
Oke hartstikke bedankt, dus die bots die mijn website spammen vullen dus niet het form in maar dat gaat via een directe link?
 
kan allebei, maar als ze het via de form proberen dan zal een bot ook het lege hidden field invullen( een bot weet niet dat het hidden is) en als men het direct probeert dan zal er geen session zijn.

Dus het zit dan dubbel dicht. Er zullen wel andere manieren zijn maar ik ben geen beveilingsexpert.
 
kan allebei, maar als ze het via de form proberen dan zal een bot ook het lege hidden field invullen( een bot weet niet dat het hidden is) en als men het direct probeert dan zal er geen session zijn.

Dus het zit dan dubbel dicht. Er zullen wel andere manieren zijn maar ik ben geen beveilingsexpert.

Dankjewel ik vind dit een toppieoplossing Ga hem nu uitwerken. Zet hem online vannacht en we zullen zien hoeveel spam we binnenhalen !
 
Ik hoop dat het werk, laat het nog ff weten!

Maar volgens mij zit het zo aardig dicht.
 
Mijn pagina ziet er nu als volgt uit :

PHP:
<html>
<head>
<title>Rik Beernink : Gastenboek </title>
<link rel="Stylesheet" type="text/css" href="main_css.css" />




</head>
<body>
<?php
session_start();
require ("require_menu.php");
require ("require_favicon.php");
require ("require_connect_database.php");
require ("require_reclame01.php");
$ip = $_SERVER['REMOTE_ADDR'];

$uni = md5(date(Ymdhis).$ip);



echo "<br />";
echo "<div class='div_text_left' >
Welkom op het gastenboek.<br />
Het is hier mogelijk om een berichtje achter te laten op de website! <br /><br />
Het zou leuk zijn als je hier commentaar over de website achterlaat!</div>";
echo "<br /><br />";

if ($_POST['antispam'] == ""){

	if ($_SERVER['REQUEST_METHOD'] == "POST"){
		if ($_SESSION['id'] == $_POST['uni']){
			echo "<div class='div_float_left'>Bedankt, je bericht is toegevoegd aan het gastenboek!</div><br /><br />";
			$naam = $_POST['naam'];
			$bericht = $_POST['bericht'];
			$datum = date("F j, Y, g:i a");
	
			mysql_query("INSERT
			INTO tbl_guestbook 
			VALUES ('','$naam', '$bericht', '$datum')")
			or die(mysql_error()); 
	
			echo "<script type='text/javascript'>
			alert('Het bericht is toegevoegd aan het gastenboek!')
			</script>";
			session_destroy();
		
		}	
		else{
		echo "<script type='text/javascript'>
		alert('Er is iets mis gegaan. Je wordt teruggeleid naar het gastenboek.')
		window.location = 'http://rikbeernink.nl/guestbooktest3.php' 
		</script>";
		}	
	}

	
else {
$_SESSION['id'] = $uni; 

	echo "<script type='text/javascript'>
	
	
	
	
	
	function formValidator(){
 		var naam = document.getElementById('naam');
 		var bericht = document.getElementById('bericht');
 		
 		if(isAlphabet(naam, 'Vul alstublieft uw naam in.')){
 			if(berichtcheck(bericht, 9, 140)){
 				return true;
 			}
 		}
 		return false;
 	}
 	
 	function isAlphabet(elem, helperMsg){
	var alphaExp = /^[a-zA-Z]+$/;
	if(elem.value.match(alphaExp)){
		return true;
	}else{
		alert(helperMsg);
		elem.focus();
		return false;
		}
	}
	
	function berichtcheck(elem, min, max){
	var uInput = elem.value;
	if(uInput.length >= min && uInput.length <= max){
		return true;
	}else{
		alert('Het bericht moet uit minstens 10 karakters en maximaal 140 karakters bestaan.');
		elem.focus();
		return false;
	}
}
	


	
	</script>";
	echo "<div class='div_text_home'>";
	echo "<form action='' method='POST' onsubmit='return formValidator()'>
	<br />
	Naam <input type='text' name='naam' id='naam' />
	<br />
	Bericht <textarea name='bericht' id='bericht' rows='5' ></textarea> 
	<br /><br />
	<input type='submit' name='submit' onclick='antibot()' />
	<input type='hidden' name='antispam' />
	<input type='hidden' name='uni' value=$uni />
	</form></div>";
	
	echo "<br /><br />";
	
		
}

echo "<table border =\"1\" width='800px' align = \"center\">";
echo "<p><tr><th width='50px' >Bericht nummer</th>";
echo "<th width='200px'>Naam</th>";
echo "<th width='350px' >Bericht</th>";
echo "<th width='200px'>Datum</th>";

$result = mysql_query("SELECT * FROM tbl_guestbook order by ID DESC")
or die(mysql_error());  

while ($row = mysql_fetch_array($result)) {
echo "<tr>";
echo "<td>";
echo $row['ID'];
echo "<td>";
echo $row['naam'];
echo "</td>";
echo "<td>";
echo $row['bericht'];
echo "</td><td>";
echo $row['datum'];
echo "</td></tr></p>";
}
echo "</table>";


} 
else {
die();
}

?>
</body>
</html>

De pagina stond nog geen minuut online en er was weer spam.

En dit was veel langer dan mijn maximum van 140 tekens. Wat ging daar mis?

En hoe komt die spam er weer op :(!

Ik dacht dat ik het wel goed opgevolgd had toch?
 
En er is een nacht voorbij en mijn guestbook is weer helemaal vol gespamd ...

19 cheapest generic viagra manyTYLENOL order going internal people pregnancy to as platinum is, generic viagra fake, =-P, December 29, 2010, 8:09 am
18 viagra online deutschland means receptor tramadol I that charged turkey Ultram alcohol scroll, viagra uk next day delivery, 4577, December 29, 2010, 7:15 am
17 viagra online in canada mosthas and concentration them provides that noradrenergic course, cheapest viagra usa, 23422, December 29, 2010, 6:20 am
16 natural viagra pills communicate the width Medications taking symptoms What products is to, order viagra in canada, %-(((, December 29, 2010, 5:25 am
15 buy viagra london tramadol pharmacies diluted orm dose the Home PR usually been, viagra no prescription uk, rbbqnz, December 29, 2010, 4:28 am
14 link The mean reduction in supine systolicdiastolic blood pressure due to tadalafil 10 mg in subjects taking amlodipine was 32 mm Hg compared to, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=36c cialis online order, :D, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=68c click here, vkrlmv, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=3c buy cialis brand, dhf, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=24c cialis canada price, 2917, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=45c cialis soft tabs review, >:PP, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=28c cialis dose, =-]]], https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=7c cialis soft pills, 000, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=65c cialis cost canada, bivqgf, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=58c generic cialis overnight delivery, =), https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=13c buy generic cialis, liqcq, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=15c canadian cialis online, slrxa, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=48c cialis viagra difference, wlnd, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=39c link, 9192, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=9c buy cialis daily, >:-], https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=5c buy cialis online without a prescription, 56084, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=50c click here, 407895, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=25c cialis cost cvs, >:((, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=46c cialis uk online, :-DDD, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=38c cialis prices uk, >:))), https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=44c cialis soft tabs online, rlekch, https://wiki.ubuntu.com/tuyy?action=AttachFile&do=get&target=63c generic cialis prices, 000185, December 29, 2010, 4:10 am
13 cheap cialis canada SPECIFIC REVIEW on the clinical

Allemaal van dit soort onzin
 
Bedankt voor je hulp. Ik open even een nieuw topic. Guestbook Spam.

Misschie dat ik daar meer doelgerichte hulp krijg.

Bedankt!
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan