2012-04-04 2 views
1

텍스트 상자에있는 내용을 저장하는 백엔드에서 저장 프로 시저를 실행하는 간단한 텍스트 상자와 간단한 단추 컨트롤이있는 .net 형식 (C#)이 있습니다. 데이터베이스 이것은 신뢰할 수있는 사용자 만 사용하는 내부 시스템을위한 것입니다. 어느 상자에도 현재 유효성 검사가 없습니다.양식 단추가 텍스트 상자의 특정 문자로 자동으로 비활성화 됨

시스템이 작동하지만 페이지의 텍스트 상자에 여는 태그 나 닫는 태그 문자 ("<"또는 ">")가 입력되면 버튼이 자동으로 비활성화됩니다. 당신은 그것을 클릭하고 아무 일도 일어나지 않는다. (나는 그 버튼이 전혀 작동하지 않고 주사위가없는지를보기 위해 저장 버튼에 브레이크 포인트를 통과했다.)

나는 이것이 일종의 내장 메커니즘이라고 가정하고있다. webform에서 SQL 주입 공격이나 무언가를 막을 수 있습니까? 그것을 사용 중지하는 방법이 있습니까?

- 관련 코드를 추가하려면 편집하십시오. 저장 단추가 무엇을하는지에 대해서는 깊이 생각하지 않습니다. 왜냐하면 처음에는 저장 단추가 실행되지 않기 때문입니다. "<"또는 ">"(txtText_Box1) 텍스트 상자에 문제없이 잘 작동합니다.

<b>Title</b><br /> 
     <asp:TextBox ID="txtTitle_Box1" runat="server" Width="600px"></asp:TextBox><br /><br /> 
     <b>Text</b><br /> 
     <asp:TextBox ID="txtText_Box1" runat="server" Width="600px" TextMode="MultiLine" Rows="4"></asp:TextBox><br /><br /> 
     <b>Link To</b><br /> 
     <asp:TextBox ID="txtLink_Box1" runat="server" Width="600px" /><br /><br /> 
     <b>Link Text (always ends with >>)</b><br /> 
     <asp:TextBox ID="txtLinkText_Box1" runat="server" Width="600px" /><br /><br /> 
     <b>Image</b><br /> 
     <asp:Image id="imgBox4" runat="server" /><br /><br /> 
     <br /><br /> 
     <asp:Button ID="btnSave" runat="server" Text="Save Changes" CssClass="cssButton1" OnClick="btnSave_Click" /> 


    protected void btnSave_Click(object sender, EventArgs args) 
    { 

      string sTitle = string.Empty; 
      string sText = string.Empty; 
      string sURL = string.Empty; 
      string sLinkText = string.Empty; 

      sTitle = txtTitle_Box1.Text.ToString(); 
      sText = txtText_Box1.Text.ToString(); 
      sURL = txtLink_Box1.Text.ToString(); 
      sLinkText = txtLinkText_Box1.Text.ToString(); 

      .... 

    } 
+0

winform입니까, 아니면 웹 응용 프로그램입니까? 또한 <> 문자를 사용하지 않거나 기본적으로 코드가 깨지는 것을 들어 보지 못했습니다. – CBRRacer

+1

가능한 경우 마크 업과 관련 코드를 게시하십시오. –

+0

웹 앱. 혼란 스럽습니다. 코드를 초 단위로 게시합니다. – optionsix

답변

0

시행 착오를 거친 후, 버튼을 눌렀을 때 단 한 문자로 좁혔습니다. "<", SQL 주입 공격에서 가장 널리 퍼진 캐릭터를 포함하여 키보드의 모든 다른 문자가 올바르게 작동합니다. 나는 문제를 "고칠 수는 없지만 해결 방법을 구현하고 이스케이프 문자를 넣었습니다. "<"대신 "::"를 입력하십시오. 매우 어리석은 것 같아요. 왜 이런 일이 벌어지고 있는지 아직도 모르겠지만, 제 문제를 넘어서게합니다. 누구든지 더 좋은 생각이 있다면 분명히이 답변을 취소하고 전액을 신용 해달라고 요청할 것입니다.

관련 문제