2013-04-18 6 views
1

쿼리 문자열 매개 변수를 비즈니스 계층에 전달하기 전에 html.encode를 사용하는 것이 좋습니다. 이 시나리오는 asp.net 프레임 워크와 관련하여, 나는 쿼리 문자열의 내용을 인코딩해야하는지 또는 키의 값을 읽기 전에 궁금합니다.쿼리 문자열 매개 변수에 html.encode 사용

나는 우리가 항상 예상 된 데이터 형식으로 내용을 변환 할 수 있지만 내 질문은 디자인 관점에서 알고 있습니다.

감사합니다.

+0

매개 변수를 어디에서 enocde 할 것인지 잘 모르겠습니다. Request.RawUrl 매개 변수를 사용하지 않는 경우 QueryString에서 멋지게 디코딩되거나 ASP.Net MVC 액션 매개 변수에서 더 잘 해석되어야합니다 ... 아니면 클라이언트 측에서 추가 인코딩에 대해 이야기하고 있습니까? –

+0

나는 www.foo.com?number=abc에 대해 이야기하고 있습니다. 숫자 키의 내용이 10000이 아니라 abc임을 확인하려면 코드 숨김에서 사용하기 전에 Request.QueryString [ "number"] 값을 신뢰하거나 html.encode를 추가로 사용하는 것이 가장 좋습니다. – fooMyFavoriteVariable

+0

'Request.QueryString [ "number"]'볼 가치가있는 서버 측입니다 - 원시 URL에서 인코딩 된대로 한번 디코딩됩니다. 나는 그것을 인코딩하는데 아무런 가치가 없다. (추가적인 인코딩은 값을 사용할 수 없도록 만들 수도있다.) HTML을 작성할 때 값을 적절하게 인코딩 할 필요가 있다고 혼란스럽게 생각합니다. –

답변

1

나는 그렇다고 대답 할 것입니다. 최소한으로 브라우저에서 인코딩이 잘못되었을 수 있기를 원합니다. 하나의 기호가 다른 문자 또는 알 수없는 문자로 표시 될 수 있습니다. 브라우저가 잘못하면 앞의 문자와 섞일 수도 있습니다.

더 복잡한 이유는 HTML 삽입을 방지하는 데 도움이됩니다.

HTML 인코딩을 사용해야하는 이유에 대한 간단한 설명은 특정 문자 집합이 HTML에서 특별한 것을 의미하고 인코딩은 모든 브라우저에서 정상적으로 캐럿 및 앰퍼샌드와 같은 기호에 도움이된다는 것입니다.

+0

제안에 감사 드리며, 귀하의 의견에 동의합니다. – fooMyFavoriteVariable

관련 문제