2011-12-24 2 views
0

при попытке обработать некоторый пользовательский ввод, который содержит символы, такие как <.Sys.WebForms.PageRequestManagerServerErrorException: Произошла неизвестная ошибка

Я хочу дезинфицировать этот вход и позволить ему отображаться и быть безопасным для XSS.

Я получаю эту ошибку ajax, даже если я не достиг кода vb, чтобы очистить вход.

Sys.WebForms.PageRequestManagerServerErrorException: Неизвестная ошибка при обработке запроса на сервере. Код состояния, возвращаемый с сервера, был: 500

Вход управляется с помощью btnNoteSave, который является триггером обновления.

   <div style="width: 100%; float: left"> 
       <div> 
        <asp:Button ValidationGroup="valgroup1" ID="btnNoteSave" runat="server" Text="Save" 
         class="ui-state-default ui-corner-all float-left ui-button" /> 
       </div> 
      </div> 
      <div style="width: 100%; float: left"> 
       <asp:UpdatePanel ID="pnlNotes" runat="server"> 
        <ContentTemplate> 
         <div id="content_container" style="margin-top: 85px"> 
          <asp:Label ID="lblNotes" runat="server"></asp:Label> 
         </div> 
        </ContentTemplate> 
        <Triggers> 
         <asp:AsyncPostBackTrigger ControlID="btnNoteSave" EventName="click" /> 
        </Triggers> 
       </asp:UpdatePanel> 
      </div> 

Я пробовал дезинфицировать свой ввод в коде, но я даже не дошел до этого. Ошибка - это ошибка ajax, которая выдает, когда она достигает здесь.

Protected Sub btnNoteSave_Click(ByVal sender As Object, ByVal e As System.EventArgs) Handles btnNoteSave.Click 

.... 

     newnote.Note = Server.HtmlEncode(txtNote.Text) 
.... 

End Sub 

Любые идеи, как получить доступ к этим вопросам?

Спасибо,

ответ

0

Вы, вероятно, нужно добавить ValidateRequest="false" к директиве @Page вашей страницы (или на <pages> элемент в файле web.config. Это отключает XSS проверку на ASP.NET, который срабатывает, когда его встречаются <> символов.

Если вы все еще получаете 500 ошибки из PageRequestManager пытаются временно переместить элементы управления за пределами UpdatePanel, чтобы вы могли лучше проверить ошибки во время выполнения.

Смежные вопросы