Как исправить проблемы XSS в IE8? - PullRequest
2 голосов
/ 14 февраля 2012

У меня есть форма, которая отправляется на URL-адрес. Этот сервер сохраняет объявления в базе данных и отправляет сообщения электронной почты, а затем отправляет страницу успеха в браузер.Форма работает в Firefox, но в IE8 данные сохраняются, сообщения электронной почты отправляются, но страница успеха блокируется.Как отключить фильтр XSS или переписать форму, чтобы избежать этой проблемы.Я не понимаю, почему он заблокирован, но если я закомментирую раздел информации о пользователе в форме, он будет работать.

Я новичок в Javascript и HTML, и я не понимаю большую часть того, что я читал о фильтре XSS.Я встроил этот код, поэтому я просто не знаю, как правильно кодировать эти формы.

На самом деле есть две формы, созданные с помощью JavaScript и отправленные на сервер.первая форма, представленная в приведенном ниже коде, вызывает проблему XSS, вторая форма, которая очень похожа, работает в основном.

function doSubmit()
{
if (!validateForm())
    return false;

if (confirmForm())
{
    generateForm_code();  //builds first form 
    clearUndefinedFieldsInForm("form_generated_code");
            document.form_generated_code.target="frame_code";
    document.form_generated_code.method="post";
             document.form_generated_code.action= "http://their.server.com/servlet/UFO?001=1";
    document.form_generated_code.submit();


    generateForm(); //builds second form 
    clearUndefinedFieldsInForm("form_generated");
    document.form_generated.target="frame_generated";
    document.form_generated.method="post";      
    document.form_generated.action = "http://their.server.com/servlet/UFO?002=1";
    document.form_generated.submit();
}       
}

its.server.com отправляет ответ

<body>
<head>
<META HTTP-EQUIV="Content-Type" CONTENT="text/html;charset=UTF-8">
</head>
<html>
<script language="javascript">
  location.replace("http://my.server.com/successback.html");
</script>
</html>
</body>

My successback.html

<html>

<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>SUCCESS BACK</title>
</head>

<body>
<script>
parent.successbackHandler();
</script>
</body>

</html>

В этом разделе подсчитываются возвращаемые формы и отправляетсясообщение об истинном успехе, как только получит два ответа.Но так как он только получает один ответ, он никогда не отображает страницу действительно завершенного.html.

totalPostPages= 2

function successbackHandler()
{
totalPostPages --;
if(totalPostPages == 0)
{
    MaskDialog.hide();
    totalPostPages= 2
    window.location="reallyfinished.html";
}
}
...