개발 언어/C,C++,C#

클라이언트에서 잠재적 위험이 있는 Request.Form 값을 발견했습니다

삐뚤어진 개발자 2019. 5. 31.

 

 

'클라이언트에서 잠재적 위험이 있는 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)]를 붙여서 해결했다.

 

예시)

 

 

이 설정을 풀어주어도 요즘 웬만한 브라우저들은 기본적으로 이것들을 막아주고 있기 때문에 설정을 해제해도 큰 문제는 없어보인다. 

 

 

 

 

 

남기는 출처에 더 자세한 설명과 다양한 상황이 있다.

 

출처:

https://m.blog.naver.com/PostView.nhn?blogId=dotnethelper&logNo=60121604344&proxyReferer=https%3A%2F%2Fwww.google.com%2F

'개발 언어 > 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

댓글