2013-07-29 1 views
11

내 웹 사이트에서 로그인 한 사용자는 프로필 사진을 변경할 수 있으며이 과정에서 업로드 된 이미지는 웹 사이트의 루트 디렉토리에있는 폴더에 저장됩니다.<identity impersonate = "true"/>

테스트했을 때 사용 권한을 사용하여이 특정 폴더에 대한 액세스 권한을 부여해야한다는 오류가 발생했습니다.

나는 제어판, 그는 이미지기타WRITE 읽기 권한을 폴더에 부여했던 말했다 않는 일을 제어 할 수 없습니다.

는 테스트 후에 다시, 또 다시 같은 오류, 그래서 나는 의 Web.config을 편집 포함 :

<identity impersonate="true"/> 

이제 모든 것이 완벽하게 작동하는 것 같다. 하지만 내가 여기서 뭘 했지? 보안상의 위험이 있습니까? 모든 사람들을 위해 내 웹 사이트에 익명으로 액세스 권한을 부여 했습니까?

답변

10

하지만 여기서는 무엇을 했습니까?

이제 클라이언트 사용자의 ID로 웹 사이트를 실행하고 있습니다.

보안 위험이 있습니까?

이 계정은 서버에있는 사용 권한에 따라 달라집니다. 일반적으로 많은 권한을 가진 계정으로 웹 사이트를 운영하는 것은 나쁜 습관입니다. 이상적으로는 필수 폴더에 명시 적으로 권한을 부여한 계정으로 웹 사이트가 실행되도록 구성해야합니다.

접근 방식의 문제점은 지정된 폴더에 대한 액세스 권한이없는 다른 사용자가 귀하의 웹 사이트를 방문하면 그 사람에게 적합하지 않다는 것입니다. 반면에 이것이 예상 된 동작 인 경우 사용자 ID를 가장하여 정상적으로 처리 할 수 ​​있습니다.

누구나 내 웹 사이트에 대한 익명 액세스를 허용 했습니까?

아니요, 인증과 관련이 없습니다.

+0

나는 제어판에 대한 액세스 권한이 없으므로 필자는 그 사람에게 연락하는 것이 고통이기 때문에 자신의 권한을 테스트해야합니다. 어쨌든 폴더에 액세스하려고 시도했지만 금지되었습니다 (가장 아래 임). = true), 모든 것이 안전한지 확인하기 위해 내가 뭘 테스트 할 수 있습니까? (나는 이것이 옳은지 알지 못합니다.) –

+0

이미 내 대답에서 설명했듯이 가장은 사용하지 않아야합니다. –

2

로그인 한 사용자로 작업 할 수있는 권한이 사용자에게 부여됩니다.

그리고 가장을 가장 한 경우 보안 위험이 있습니다. 프로덕션에있는 경우

, 난 당신의 Web.config이 앱은 실행중인 응용 프로그램 풀에 대해 구성된 어떤 정체성을 대체 할 수 있습니다에 가장을 사용하여이 문서

http://support.microsoft.com/default.aspx?scid=kb;en-us;329290

"를 읽고 추천 할 것입니다 - (앱 레벨 대 ApplicationPool 레벨에서) 신원을 제어하는 ​​더 정교한 방법 일 뿐이므로 동일한 AppPool에서 실행되는 두 개의 앱을 가질 수 있지만 그 중 하나는 다른 ID를 사용하기 위해 가장을 사용합니다." 예 : App pool identity versus impersonation identity?

관련 문제