2011-11-22 3 views
0

사용자가 의견을 입력 할 수있는 텍스트 상자를 만들었습니다. 따라서 때로는 응용 프로그램에서 발생한 오류를 복사하여 설명과 함께 텍스트 상자에 붙여 넣습니다. 불법 문자 (예 : </11>)가 포함될 수 있지만 저장해야하지만 .aspx는 허용되지 않습니다. 이 문제를 어떻게 처리해야할지 모르겠다. 감사!텍스트 상자에 잘못된 문자 허용

+1

_ "my .aspx는 허용되지 않습니다."_ 어떤 코드를 사용하여 저장합니까? 어떤 오류가 발생합니까? – CodeCaster

+0

내 대답을 고려하십시오 : 자바 스크립트로 사용자가 삽입 한 텍스트를 조작하지만 RequestValidation을 유지하십시오. –

답변

2

다음 중 한 가지 방법으로이 검사를 비활성화 할 수 있습니다 사용자가 TextBox를 편집하고 html 태그를 입력하려는 경우

를 통해 이것을 사용 중지 할 수 있습니다.
<%@ Page validateRequest="false" ...> 

또는 전체 응용 프로그램의 Web.config에서이하여 validateRequest 속성이 이유없이 존재하지 않는 것을

<system.web> 
    <page validateRequest="false" /> 
</system.web> 

참고. 기본값을 변경하면 안전하지 않은 입력이 수락됩니다. 그 때문에, 당신은 다른 스마트 솔루션 에 자바 스크립트를 통해


교체되는 악성 자바 스크립트, 액티브 X, 플래시의 삽입 또는 HTML과 같은 피할 크로스 사이트 스크립팅 공격에 모든 사용자의 입력을 검증 할 필요가 사용자가 작성한 텍스트를 사용하여 유효성을 검사하는 것이 안전합니다.
< anyword> 대신 <anyword>이 안전한 것으로 간주됩니다!

function validateTxt() { 
    $("textarea, input[type='text']").change(function() { 
     html = $(this).val(); //get the value 
     //.replace("a" , "b") works only on first occurrence of "a" 
     html = html.replace(/< /g, "<"); //before: if there's space after < remove 
     html = html.replace(/</g, "< "); // add space after < 
     $(this).val(html); //set new value 
    }); 
} 

$(document).ready(function() { 
     validateTxt(); 
}); 
+0

우리는이 문제를 불법적 인 성격의 전후에 공백으로 해결할 수 있다는 것을 의미합니까? 그렇다면 모든 불법 문자에 대해해야합니까? – dotnetrocks

+0

내 솔루션은 "<"문자 문제를 해결합니다. 사용자가 HTML 태그를 생성 할 수 있기 때문에 불법입니다. ""은 (는) 공백 인 태그 대신 "< anyword>"(공백이 있음) 태그로 간주되지 않으며 허용됩니다. 당신이 알고있는 다른 불법적 인 성격은 무엇입니까? –

3

"잠재적 위험으로 Request.Form 값은 클라이언트에서 검색되었습니다 ..."

. 이 기능은 페이지 또는 사이트 수준에서 비활성화 할 수 있지만 이와 관련된 위험이 있습니다.

페이지 지시어 또는 web.config에서 ValidateRequest = "false"를 지정하면됩니다. 여기

자세한 내용은 : http://www.asp.net/learn/whitepapers/request-validation

+0

답장을 보내 주셔서 감사합니다 !!ValidateRequest = "false"...를 사용하면 유효성이 검사 될 다른 컨트롤이 페이지에 있습니다. – dotnetrocks

+0

ValidateRequest는 스크립트 공격을 방지하는 방법입니다. 사용을 중지하면 안전하지 않은 입력을받습니다. 유효성 검사기 (ASP : RequiredFieldValidator, ASP : CompareValidator 등)가 작동합니다. 어쨌든 내 대답 좀 봐. –

+0

페이지 수준에서이 작업을 수행하면 전체 페이지 및 모든 컨트롤에 대한 유효성 검사가 비활성화되므로주의해야합니다. web.config에서이 작업을 수행하면 전체 사이트 및 모든 페이지의 모든 컨트롤이 비활성화되므로주의하십시오. 유효성 검사가 여전히 실행됩니다. emanuele greco는 좋은 점을 제시하고 좋은 대안을 제시하므로, 나는 그 대답을 너무 높이 평가하고있다. 답장을 보내 주셔서 감사합니다. –

0

그것은 될 수 인해 HTML로는 보안 조치로, 서버 측을 거부된다. 페이지 헤더 <%@ Page validateRequest="false" %>

에 다음 속성을 추가 또는 있는 Web.Config에 다양한 변화 응용 프로그램을 만드는

:

<configuration> 
    <system.web> 
     <pages validateRequest="false" /> 
    </system.web> 
</configuration> 
관련 문제