확장 프로그램을 사용하지 않고 업로드 된 파일의 형식을 안정적으로 확인하는 방법은 무엇입니까? 나는 당신이 헤더를 검사해야한다는 것을 짐작하거나 바이트의 일부를 읽지 만, 나는 그것에 대해 어떻게 해야할지 전혀 모른다. 임 C#과 asp.net를 사용하여.업로드 된 파일의 확장자에 의존하지 않고 내용을 확인하는 방법은 무엇입니까?
어떤 조언을 주셔서 감사합니다. 확인
, 그래서 위의 링크에서 나는 지금은 긍정적으로 예를 들어 .jpg 파일을 식별하는 'FF로 D8 FF E0'을 찾고있는 것을 알고있다. 내 코드에서
내가 처음 이십 바이트에게 문제 읽을 수 있도록 (여기 내 총 경험 부족을 용서하시기 바랍니다)
FileStream fs = File.Open(filePath, FileMode.Open);
Byte[] b = new byte[20];
fs.Read(b, 0, 20);
을하지만 어떻게 바이트 배열이 포함되어 있는지 여부를 확인합니까 'FF로 D8 FF E0' ?
저는 바이너리로 모든 것을 스트리밍하는 구성 요소를 사용하고 있기 때문에! – flesh
첫 번째 링크는 두 번째 링크보다 훨씬 포괄적입니다. –
클라이언트가 적대적이며 의도적으로 잘못된 Content-Type을 공격의 일부로 주장 할 수 있으므로 Content-Type에 의존 할 수 없습니다. 트러스 팅 Content-Type은 파일 확장자를 신뢰하는 것보다 조금 나은 점이 있습니다. –