这段Javascript 1.2代码中有什么漏洞?

这段Javascript 1.2代码中有什么漏洞?,javascript,Javascript,一位朋友给我指了指他的旧网站,说“提交表单不久前就停止工作了。我相信它很简单。” 表单要求孩子从书中输入某个单词,并根据答案将孩子重定向到成功页面或失败页面。它使用Javascript 1.2,大约在2001年 您可以在以下位置看到此表单的实际应用: 知道为什么会失败吗 HTML可执行以下操作: <script src="password.js" type="text/javascript" language="JavaScript1.2"> </script> &l

一位朋友给我指了指他的旧网站,说“提交表单不久前就停止工作了。我相信它很简单。”

表单要求孩子从书中输入某个单词,并根据答案将孩子重定向到成功页面或失败页面。它使用Javascript 1.2,大约在2001年

您可以在以下位置看到此表单的实际应用:

知道为什么会失败吗

HTML可执行以下操作:

<script src="password.js" type="text/javascript" language="JavaScript1.2">
</script>

<script type="text/javascript" language="JavaScript1.2">
<!--

function showRightPage ()
{
return window.location.href = "extra.html" ;
}

function showWrongPage ()
{
 return window.location.href = "sorry2.html" ;
}

//-->
</script>

谢谢

此处失败:

document.callThis.document.questionForm.userAnswer.value

document.call这是未定义的,我从未见过该函数

你也许可以替换

if (agt.indexOf("msie") != -1)
    {
    rawAnswer = document.questionForm.userAnswer.value ;
    }
else
    {
        rawAnswer = document.callThis.document.questionForm.userAnswer.value ;
    }
只需将其替换为:

rawAnswer=document.questionForm.userAnswer.value


我只是在Firefox上快速测试了一下,但我不明白为什么它在其他地方不起作用。

第一个答案是正确的我所知道的任何地方都不存在这个。我想那是网景的老东西

我从不按名称进行表单访问,但javascript看起来应该可以工作。备选版本如下所示:


rawAnswer=document.getElementsByName('userAnswer')[0]

请格式化你的代码。有括号汤这样的东西吗?谢谢!这就解决了!我测试了不同的浏览器。谢谢!是的,在收到这个提示后,我去谷歌搜索了。我无法获得显示调用此函数的清晰搜索结果。
 document.write ( '<form name="questionForm" action="extra.html" method="post">' ) ;
function checkAnswer ()
{
 currentAnswer = answersArray [ choiceNumber ] ;

 if (agt.indexOf("msie") != -1)
 {
  rawAnswer = document.questionForm.userAnswer.value ;
 }
 else
 {
  rawAnswer = document.callThis.document.questionForm.userAnswer.value ;
 }

 lcAnswer = rawAnswer.toLowerCase ( ) ;
 includedAnswer = lcAnswer.indexOf ( "currentAnswer" ) ;
 zadaAnswer = lcAnswer.indexOf ( "zada" ) ;
 brendanAnswer = lcAnswer.indexOf ( "brendan" ) ; 
 nineAnswer = lcAnswer.indexOf ( "nine" ) ;
 thirtyAnswer = lcAnswer.indexOf ( "thirty" ) ;

 if ( choiceNumber == 0 )
 {  
  if ( includedAnswer == -1 && zadaAnswer == -1  && brendanAnswer == -1 )
  {
   checked = "wrong" ;
  }
 }
 if ( choiceNumber == 8 )
 {  
  if ( includedAnswer == -1 && zadaAnswer == -1  && nineAnswer == -1 )
  {
   checked = "wrong" ;
  }
 }
 if ( choiceNumber == 16 )
 {  
  if ( includedAnswer == -1 && zadaAnswer == -1  && thirtyAnswer == -1 )
  {
   checked = "wrong" ;
  }
 }
 if ( choiceNumber != 0 && choiceNumber != 8 && choiceNumber != 16 )
 {  
  if ( includedAnswer == -1 && zadaAnswer == -1 )
  {
   checked = "wrong" ;
  }
 }

 if ( checked == "wrong" )
 {  
  showWrongPage () ;
 }
 else
 {
  showRightPage () ;
 }
}
if (agt.indexOf("msie") != -1)
    {
    rawAnswer = document.questionForm.userAnswer.value ;
    }
else
    {
        rawAnswer = document.callThis.document.questionForm.userAnswer.value ;
    }