HTTP 응답 헤더에서 컨텐츠 방향 사용
-
06-07-2019 - |
문제
데이터베이스에서 파일을 제공 할 때 다음 ASP.NET 코드가 매우 유용하다는 것을 알았습니다.
Response.AppendHeader("content-disposition", "attachment; filename=" + fileName);
이를 통해 사용자는 파일을 컴퓨터에 저장 한 다음 파일을 사용하려는 브라우저 대신 파일을 사용하는 방법을 결정할 수 있습니다.
내용 분할 응답 헤더로 다른 일을 수행 할 수 있습니까?
해결책
주목하십시오 RFC 6266 아래에 언급 된 RFC를 대체합니다. 섹션 7 관련 보안 문제 중 일부를 간략하게 설명합니다.
컨텐츠 공포 헤더에 대한 권한은 다음과 같습니다 RFC 1806 그리고 RFC 2183. 사람들도 고안했습니다 콘텐츠 위치 해킹. 내용화 헤더는 HTTP 1.1 표준의 일부가 아닙니다.
HTTP 1.1 표준 (RFC 2616) 또한 콘텐츠 처분의 가능한 보안 부작용을 언급합니다.
15.5 컨텐츠 예측 문제
RFC 1806 [35], 자주 구현 된 내용 지위
(섹션 19.5.1 참조) HTTP의 헤더는 파생되며 여러 가지가 있습니다.
심각한 보안 고려 사항. 내용화는의 일부가 아닙니다
HTTP 표준이지만 널리 구현되었으므로 우리는
도구의 사용 및 위험을 문서화합니다. RFC 2183 [49] 참조
자세한 내용은 (RFC 1806을 업데이트).
다른 팁
글쎄, 콘텐츠 공포 헤더는 원래 웹이 아닌 이메일을 위해 만들어진 것 같습니다. (관련 RFC에 링크.)
웹 브라우저가 응답 할 수 있다고 생각합니다
Response.AppendHeader("content-disposition", "inline; filename=" + fileName);
저축 할 때는 확실하지 않습니다.
RFC 6266을 참조하십시오 (HTTP (HyperText Transfer Protocol)에서 컨텐츠 방향 헤더 필드 사용) http://tools.ietf.org/html/rfc6266
ASP.NET 사용자의 경우 .NET 프레임 워크는 컨텐츠 배치 헤더를 만들기위한 클래스를 제공합니다.System.net.mime.contentDisposition
기본 사용 :
var cd = new System.Net.Mime.ContentDisposition();
cd.FileName = "myFile.txt";
cd.ModificationDate = DateTime.UtcNow;
cd.Size = 100;
Response.AppendHeader("content-disposition", cd.ToString());
Microsoft 지원 섹션 의이 KB 기사가 여기에서 토론과 관련이 있다고 생각했습니다. 알려진 마임 유형에 대한 파일 다운로드 대화 상자를 올리는 방법