'클라이언트에서 잠재적 위험이 있는 Request.Form 값을 발견했습니다'
ASP.NET 에서 html 태그(꺽세)를 보낼 때 생기는 오류다.
HTML 스크립트가 포함된 내용을 전송 받을 경우 XSS(Cross-site scripting)와 같은 보안상 이슈가 생기기 때문에
.NET 기반 웹 기술(ASP.NET, MVC, Razor)의 기본설정에서 막고 있다.
꺽세 '<', '>'가 들어간 문자열을 받아서 넘기면 만들어진 웹 페이지에 insert 인젝션 공격을 할여지가 생기기 때문에
막아놓은 것이다.
예를 들어 ET 에서 html 태그를 보낼 때 생기는 오류다.
HTML 스크립트가 포함된 내용을 전송 받을 경우 XSS(Cross-site scripting)와 같은 보안상 이슈가 생기기 때문에
.NET 기반 웹 기술(ASP.NET, MVC, Razor)의 기본설정에서 막고 있다.
꺽세 '<', '>'가 들어간 문자열을 받아서 넘기면 만들어진 웹 페이지에 insert 인젝션 공격을 할여지가 생기기 때문에
막아놓은 것이다.
예를 들어 게시판에 게시물을 작성하는데, html 태그에 웹사이트가 로드될 때, 자신의 해킹 홈페이지로 바로 넘어가도로 만들었다. 그러면 그 게시물을 클릭한 사람 모두가 해킹되는 것이다.
이 문제를 막기 위해 .NET 기반 웹 기술(ASP.NET, MVC, Razor)의 기본설정에서 막고 있는 것이다.
하지만 악의없는 <> 꺽세 사용까지는 막을 수 없기 때문에 이 설정을 풀어주도록 한다.
해결방법은
나는 ASP.NET MVC을 사용했기 때문에 해당 페이지 컨트롤러의 [ValidateInput] 어트리뷰트를 설정함으로써 해결했다.
컨트롤러에서 사용되는 메소드 위에
[ValidateInput(false)]를 붙여서 해결했다.
예시)
이 설정을 풀어주어도 요즘 웬만한 브라우저들은 기본적으로 이것들을 막아주고 있기 때문에 설정을 해제해도 큰 문제는 없어보인다.
남기는 출처에 더 자세한 설명과 다양한 상황이 있다.
출처:
'개발 언어 > C,C++,C#' 카테고리의 다른 글
[C#] namespace 네임스페이스 / using (0) | 2019.09.03 |
---|---|
c# partial class (0) | 2019.08.28 |
c# InitailizeComponent 메서드 (1) | 2019.08.27 |
c# color.FromArgb 매서드 (0) | 2019.07.31 |
[c#] const & static 차이 (0) | 2019.05.23 |
댓글