데이터베이스에서 파일을 제공 할 때 다음 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 콘텐츠 처리 문제
HTTP 에서 자주 구현되는 Content-Disposition (섹션 19.5.1 참조)이 파생 된 RFC 1806 [35] 에는 여러 가지
심각한 보안 고려 사항이 있습니다. Content-Disposition은
HTTP 표준의 일부가 아니지만 광범위하게 구현되므로 구현 자의
사용 및 위험을 문서화하고 있습니다. 자세한 내용은 RFC 2183 [49]
(RFC 1806 업데이트)를 참조하십시오.
답변
글쎄, Content-Disposition 헤더는 원래 웹이 아니라 전자 메일 용으로 만들어진 것 같습니다. ( 관련 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());