문제

NTLM 인증을 사용하는 ASP.Net MVC 응용 프로그램을 작성 중이므로 사용자는 사이트에 등록할 필요가 없습니다.익명 액세스를 비활성화한 경우 User.Identity.Name을 데이터베이스의 소유권 키로 사용할 수 있습니까?내가 하고 싶은 것은 다음과 같은 검색을 할 수 있는 것입니다.

from station in db.stations where station.user == username select *;

이것은 사용자가 누구인지 확실하게 알 수 있을 만큼 충분합니까? 아니면 불쾌한 사용자가 이름 문자열을 스푸핑하여 액세스해서는 안 되는 데이터에 액세스할 수 있습니까?

도움이 되었습니까?

해결책

이름은 세션에서 채워지므로 공격자는 사용자의 세션을 하이재킹하고 액세스 권한을 얻으려면 세션 쿠키를 스푸핑해야 합니다.이를 방지하기 위해 ASP.NET 세션 쿠키가 암호화되어 있지만, 공격자가 암호화를 깨기 위해 무제한의 시간을 소비할 수 없도록 반드시 세션이 만료되도록 해야 합니다.쿠키를 httpOnly로 설정하면 브라우저의 악의적인 스크립트가 쿠키에 액세스하는 것을 방지할 수도 있습니다.

여기 참조 ASP.NET 2.0 웹 사이트 보안을 위한 모범 사례를 확인하세요.대부분은 여전히 ​​적용 가능하지만 MVC로 변환해야 할 수도 있습니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top