Javascript: Seite öffnen

Moin,
ich wollte für das Gästebuch auf meiner Homepage bestimmte HTML-Tags verbieten. Das habe ich so gemacht:

var texte;
var name;
var gefunden;
var original;
var gefundene=0;
var nachher
function Start()
{
texte=document.poste.eintrag.value;
original=document.poste.eintrag.value;
name=document.poste.name.value;
texte=texte.replace(/<b>/,„10025642“);
texte=texte.replace(/<a href=/,„10025642“);
texte=texte.replace(/<u>/,„10025642“);
texte=texte.replace(/<i>/,„10025642“);
texte=texte.replace(/<img src=>/,„10025642“);
texte=texte.replace(/<marquee>/,„10025642“);

gefunden=texte.search(/10025642+/);

if (gefunden !=-1)
{
gefundene++;
}
if (gefundene==1)
{
alert(„Es wurden einer oder mehrere HTML-Tags in ihrem Eintrag gefunden. Darum wurde ihr Eintrag geblockt. Ihr Eintrag würde nun so aussehen:\n“ + texte);
document.poste.eintrag.value=texte;
document.poste.name.value=name;
}
else
{
window.open(„eintragen.php“);
document.poste.eintrag.value=texte;
document.poste.name.value=name;
}

}

HTML:

Ihr Name:

Ihr Text:

Allerdings löscht er das Formular immer.

Hallo …,
Es ist sicherlich nicht dein ernst, dass du HTML-Tags mit JavaScript entfernen willst?
Das ist ne riesen Sicherheitslücke! Jeder kann JavaScript abschalten oder sich ein eigenes Formular/Script schreiben um,
eben doch HTML-Tags einzutragen.
Wenn du das Formular in einem Fenster neu öffnest mittels:
window.open(„eintragen.php“);
dann ist das natürlich leer.
Oder verstehe ich deine Frage falsch?

Gruß
VoidZer0

Moin,
ich wollte für das Gästebuch auf meiner Homepage bestimmte
HTML-Tags verbieten. Das habe ich so gemacht:

var texte;
var name;
var gefunden;
var original;
var gefundene=0;
var nachher
function Start()
{
texte=document.poste.eintrag.value;
original=document.poste.eintrag.value;
name=document.poste.name.value;
texte=texte.replace(/<b>/,„10025642“);
texte=texte.replace(/<a href=/,„10025642“);
texte=texte.replace(/<u>/,„10025642“);
texte=texte.replace(/<i>/,„10025642“);
texte=texte.replace(/<img src=>/,„10025642“);
texte=texte.replace(/<marquee>/,„10025642“);

gefunden=texte.search(/10025642+/);

if (gefunden !=-1)
{
gefundene++;
}
if (gefundene==1)
{
alert(„Es wurden einer oder mehrere HTML-Tags in ihrem
Eintrag gefunden. Darum wurde ihr Eintrag geblockt. Ihr
Eintrag würde nun so aussehen:\n“ + texte);
document.poste.eintrag.value=texte;
document.poste.name.value=name;
}
else
{
window.open(„eintragen.php“);

wenn das ausgeführt wird, was soll dann passieren ??

es wird eintragen.php in einem neuen fenster geöffnet, das war es , weder werden parameter mitgegeben noch sonst was. eintragen.php hat also keine datenbekommen , oder wolltest du POST des formulares and eintragen.php übergeben ?, dann schnmal garnicht mit open, sondern :

onsubmit=‚return checkForm();‘

und

<form action=‚eintragen.php‘ onsubmit=‚return checkForm()‘>

document.poste.eintrag.value=texte;

ergo geths hier weiter.

document.poste.name.value=name;
}

}

HTML:

Ihr Name:

Ihr Text:

Allerdings löscht er das Formular immer.

übrigens muss du das selbe nochmal im PHP eintragen.php checken, denn wie der kollege schon beschrieben, Javascript ist Benutzer seite, ohne Javascript muss es auch gehen, da ein check via Script ganz leicht ausgehebelt wird. Und glaub mir die SPAM Bots sind da sehr sehr gut drinne.

Hast du vielleicht ein Beispiel für PHP?

Hallo,
also in PHP gibt es extra Funktionen, die HTML-Code sauber maskieren,
so dass der Code wirklich als Code dargestellt wird,
so dass niemand das Aussehen und die Funktionsweise deines Gästebuchs manipulieren kann.
z.B.:

$meinBereinigterText = htmlentities($meinTextMitHTML);

Wenn dein Text durch den Aufruf nicht verändert wurde,
enthielt er keine Codes aber das kann dir dann auch egal sein,
weil die Codes ja entsprechend umgewandelt werden.
http://php.net/manual/de/function.htmlentities.php

Du solltest das generell auf alles anwenden,
was vom Benutzer gesendet und wieder im Browser dargestellt wird.
Wenn du bestimmte Benutzer eingaben auh zur Abfrage aus Datenbanken benutzt,
solltest du zusätzlich SQL-Injection vermeiden:
http://php.net/manual/de/function.mysql-real-escape-…

Alles was du mit JavaScript machst, sollte nur zusätzlich
oder als Vereinfachung der Eingabe o.Ä. verwendet werden,
denn darauf (und auf alles andere was auf der Clientseite läuft) kannst du dich einfach nicht verlassen.

Gruß
VoidZer0

Danke