webForumDet fria alternativet

Ej tillåta <% eller %> i en textarea

8 svar · 221 visningar · startad av ampy

ampyMedlem sedan feb. 20011 498 inlägg
#1

Kod:

<script language="javascript">
function check(formobj){
if(formobj.pass1.value.length==0 || formobj.pass1.value != formobj.pass2.value){
alert('Lösenordet måste vara ifyllt och identiskt i båda fälten');
return false;
} else if(formobj.username.value.length==0){
alert('Du måste ange ett användarnamn');
return false;
} else if(formobj.epost.value.indexOf('@')<0){
alert('Du måste ange en e-post adress');
return false;
} else {
return true; 
}
}
</script>

Kan någon lägga till så att det kommer upp en ruta då om textarean innehåller <% eller %> i denna kod?

JojoxxMedlem sedan juni 20004 308 inlägg
#2

Det ser inte ut som något av fälten i funktionen är textareor, men om vi kallar text-arean "message" så kan du på raden före "} else {" lägga till;

} else if(formobj.message.value.indexOf('<%')>=0 || formobj.message.value.indexOf('%>')>=0){
alert('Du får inte använda <% eller %>');
return false;
ampyMedlem sedan feb. 20011 498 inlägg
#3

Du hade rätt, alla var inte textareor, hade skrivit fel men nu så skriver den bara ut sidan tills koden kommer, resten av sdain skriver den inte ut, varför?

<script language="javascript">
function check(formobj){
if(formobj.pass1.value.length==0 || formobj.pass1.value != formobj.pass2.value){
alert('Lösenordet måste vara ifyllt och identiskt i båda fälten');
return false;
} else if(formobj.username.value.length==0){
alert('Du måste ange ett användarnamn');
return false;
} else if(formobj.text.value.indexOf('<%')>=0 || formobj.text.value.indexOf('%>')>=0){
alert('Du får inte använda <% eller %>');
return false;
} else if(formobj.epost.value.indexOf('@')<0){
alert('Du måste ange en e-post adress');
return false;
} else {
return true; 
}
}
</script>
ampyMedlem sedan feb. 20011 498 inlägg
#4

Ursprungligen av ampy Du hade rätt, alla var inte textareor, hade skrivit fel men nu så skriver den bara ut sidan tills koden kommer, resten av sdain skriver den inte ut, varför?

<script language="javascript">
function check(formobj){
if(formobj.pass1.value.length==0 || formobj.pass1.value != formobj.pass2.value){
alert('Lösenordet måste vara ifyllt och identiskt i båda fälten');
return false;
} else if(formobj.username.value.length==0){
alert('Du måste ange ett användarnamn');
return false;
} else if(formobj.text.value.indexOf('<%')>=0 || formobj.text.value.indexOf('%>')>=0){
alert('Du får inte använda <% eller %>');
return false;
} else if(formobj.epost.value.indexOf('@')<0){
alert('Du måste ange en e-post adress');
return false;
} else {
return true; 
}
}
</script>
ampyMedlem sedan feb. 20011 498 inlägg
#5

Oj, skulle redigera meddelandet men råkade citera det, sorry.

solbulleMedlem sedan mars 20015 287 inlägg
#6

glöm det, jag svammlar säkert bara...

easMedlem sedan sep. 2001269 inlägg
#7

Finns det ite risk att servern tolkar det som står mellan <% och %> som asp-kod.

Då kladdar den ju sönder din kod §jr

Om du kör filen som asp-fil, kan du inte köra den som html-fil?
Annars kanske man kan stänga av det på nåt annat sätt...

JojoxxMedlem sedan juni 20004 308 inlägg
#8

Jovisst, det ät sant. Är det en html-sida är det inga problem, är det asp däremot får det bli så här;

Först;
var foo = '<'+'%'; var bar = '%'+'>';

och sedan;

} else if(formobj.message.value.indexOf(foo)>=0 || formobj.message.value.indexOf(bar)>=0){
alert('Du får inte använda '+foo+' eller '+bar);
return false;

jarvkloMedlem sedan juli 20013 378 inlägg
#9

Om någon matar in text i ditt formulär och har Javascript avslaget i sin webbläsare, kan denne fortfarande mata in <% och %> i dina textareor och få detta skickat till servern vid submit på formuläret.
Den enda säkra lösningen för att försäkra sig att användaren inte lyckas spara text i något felaktigt format (eller som i detta fall några oönskade teckensekvenser) som denne matat in i ett formulär är att se till att all inmatad text även kontrolleras av den serverside- (t.ex. asp- eller php-) kod som tar emot formulärinnehållet.

134 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
131 ms — hämta tråd, inlägg och bilagor (db)