2010-02-28 7 views
4

DropDownList가 있는데 공격 벡터로 사용되는 것을 막으려 고하고 있습니다. 사용자가 실제로 DDL 값을 변경하고 서버에 다시 게시 할 수 없다고 가정 할 수 있습니까? 무결성이 viewstate가 해시에서의 손상에이 때문이라고해킹 DropDownList 값

For security purposes, this feature verifies that arguments to postback or callback events originate from the server control that originally rendered them.

잘 생각에 나는 오전 : 지금이 순간, 나는 시도하고 제출 후 패킷을 변경하면이 ASP.NET 오류 메시지가 던져 ? 이를 우회 할 수 있습니까?

감사합니다.

답변

3

사실 페이지가 EnableEventValidation = true (페이지 당 또는 web.config에서 비활성화 할 수 있지만 기본값) 인 경우 드롭 다운 목록 옵션이 클라이언트 측에서 변경되지 않았다고 가정 할 수 있습니다. 새 값이 드롭 다운 목록 클라이언트쪽에 추가되고 이벤트 유효성 검사를 위해이 새 값을 등록하지 않으면 오류가 발생합니다 (http://odetocode.com/blogs/scott/archive/2006/03/21/asp-net-event-validation-and-invalid-callback-or-postback-argument-again.aspx)

+0

봐,이게 내가 생각했던거야. DDL로 엉망으로 만들었지 만 오류 메시지 만 얻을 수있었습니다. 누구든지 편도 또는 다른 방법을 확인할 수 있습니까? 감사합니다 – XSL

+1

일반적으로 나는 당신이 클라이언트 (이것은 클라이언트와 서버 측의 유효성을 검사하기 위해 asp.net 검사기 컨트롤을 설정하는 이유 중 하나입니다)에서 오는 것을 신뢰할 수 없다는 것에 동의하지만이 경우에는 ddl EventValidation이 활성화되어있는 동안은 망연자실하지 않았습니다. ddl 및 postback 이벤트 서버 측의 유효성을 검사하려고 시도해도 ASP.Net이 EventValidation을 true로 설정 한 것과 같은 작업을 수행하고있을 것입니다. –

3

아니요, 그럴 수 없습니다.

항상 모든 입력을 신뢰할 수 없다고 생각하고 적절하게 처리해야합니다 (올바른 유형인지, 올바른 유형인지, 현재 사용자 (또는 무엇이든)) , 등등).

+0

성공적인 공격을 나타내는 개념 증명 인 IE를 제공하십시오 –