2015-02-02 4 views
0

XSS 스크립트 공격을 해결해야한다고 들었습니다. 그래서 여기에 시나리오, 크로스 사이트 스크립팅 공격 방지

이 이해의 이미지를 참조입니다 Image 1, Image 2, Image 3

내가 원하는 것은 여기에 기록 된 모든 스크립트 인코딩을하셔야합니다 내가 만든 페이지를 오류로 리디렉션해야한다는 것입니다 .

이제 현재 코드를 사용하여 스크립트가 작성 될 때 페이지가 오류 페이지로 리디렉션되지만 해당 스크립트도 또한 인코딩되기를 원합니다.

이 코드는 내 코드를 참조하십시오. 또한 인코딩 할 수 있도록 변경해야하는 부분을 알려주십시오. 다른 사람의 솔루션 것을 구현 한 후이 묻는다면 그것은 다른 질문 : 에서 다시 나야

protected void btnSearch_Click(object sender, ImageClickEventArgs e) 
{ 
    if(Regex.IsMatch(txtSearch.Text, "[^a-zA-Z0-9 % +]")) 
     { 
      Response.Redirect("Error.aspx"); 
     } 
     else 
     { 
      String ClearSpaces = Regex.Replace(txtSearch.Text, @"\s+", " "); 
      Response.Redirect("search.aspx?tx=" + HttpUtility.UrlEncode(ClearSpaces)); 
     } 
} 

답변

0

, 당신에게 같이 XSS이 완화되지 않는 것 같습니다. "여기에 작성된 모든 스크립트는 인코딩되어 있어야하고 내가 작성한 오류 페이지로 리디렉션해야합니다."라는 의미의 내용을 이해하지 못합니다 - 오류 페이지로 리디렉션하면 사용자의 입력이 어떤 식 으로든 표시되지 않습니다 .

다른 게시물에서 말씀 드렸듯이 여기서 작성한 코드가 search.aspx의 일부가 아닌 경우 search.aspx에 직접 액세스하는 것보다이 유효성 검사를 무시합니다. 이 유효성 검사를 search.aspx에 복사하고 페이지 출력시 QueryString [ "tx"] 및 \ 또는 HTMLEncode QueryString [ "tx"]의 사용을 확인해야합니다.

+0

나는 당신에 동의합니다. 당분간 나는 그 해결책을 사용했다. 나에게 영구적 인 해결책을 알려주고 나는 나의 지역에서 그것을 테스트 할 것이다. 고려해 주셔서 감사합니다. – BNN

관련 문제