2012-02-01 4 views
2

SQL Server 데이터베이스에 Products 테이블이 있고 uniqueidentifier가 들어있는 ID 열과 VARCHAR (100)이있는 ProductName 열이 있습니다. 이 테이블에는 5000 개가 넘는 항목이 들어 있습니다.GUIDs, 더 나은 접근?

이제 내 면도기 cshtml 페이지에서 드롭 다운 목록에 이러한 pProduct 이름이 표시됩니다. 내가 한 방법은 드롭 다운 값 필드를 ID 열에 바인딩하고 ProductName에 텍스트를 표시하는 것입니다. 즉, 클라이언트 측에서 브라우저에서 뷰 소스를 수행하거나 (http 스니퍼 등을 사용하는 경우) 해당 제품 이름과 관련된 모든 GUID를 볼 수 있습니다. 이제 사용자가이 정보를 제출할 때 서버 측 유효성 검사를 설정하여 제출 된 GUID가 모두 인지 확인합니다. 1) 유효 GUID (문자열 또는 기타 항목이 아님) 2) 제출 된 GUID가 제품 ID 중 존재합니다. 따라서 Products.ID에없는 Guid는 처리되지 않습니다.

사용자가이 GUID 데이터를 볼 수 있다는 사실은 보안 위험이 있습니까? 이 상황을 처리하는 더 좋은 방법이 있습니까?

답변

1

데이터베이스에 외래 키가 있다고 가정 할 경우 보안 허점이 없습니다. 제품 테이블과 제품 주문 사이에 외래 키가없는 경우에도 먼저 제품을 먼저 찾을 수 있습니다. 존재하지 않으면 요청을 무시하십시오.

.NET Framework의 Guid 구문 분석에 보안 구멍이없는 한 보안 패스가 아닙니다.

+0

예 FK가 있습니다. 내 동료 중 한 명이 보안 구멍이라고 생각합니다. 0,1,2와 같은 값을 가지고 있어도 드롭 다운 값을 바인딩하는 데 사용되지만 그다지 GUID에 직접 바인딩하지 않습니다. 귀하의 회신에 감사드립니다. – imak

+0

보안 구멍이 아니므로 쇼핑 바구니 기능 및/또는 결제가 중단됩니다. 그들은 잘못된 guid가있는 서버에서 코드를 실행할 수 없습니다. MVC가이를 취할 것입니다. –

관련 문제