2011-08-10 3 views
3

페이지에 ~ 40 개의 이미지를 표시해야하며 사용자가 이미지를 핫 링크 할 수 없도록해야합니다. 현재 <img src="...">cgi.http_referer을 확인하고 cfcontent을 사용하여 이미지를 표시하는 핸들러를 가리 킵니다. 그러나 일부 이미지는로드되지 않습니다 (40 개 중 ~ 6 개 이미지). 페이지를 새로 고치면 다른 이미지가로드되지 않습니다.이미지 표시 및 핫 링크 허용 안 함

이 문제는 10 개 이상의 이미지를 표시 할 때 나타납니다. 내가 cfcontent을 사용하고 있기 때문에 이것이라고 생각하니? 그렇다면 대신 무엇을 사용해야합니까?

+1

방금 ​​http://www.bennadel.com/blog/2170-Streaming-Secure-Files-Efficiently-With-ColdFusion-And-MOD-XSendFile.htm을 상기시켜주었습니다. – Henry

+0

나는이 중 하나에 대해 헨리와 만났습니다. 이것은 웹 서버 레벨에서 ColdFusion 레벨보다 훨씬 더 잘 해결됩니다. 그러나 그때조차도, 사람들이 그 이미지들을 원한다면, 그들은 그것을 얻을 것입니다. 더 많은 벤 Nadel 구출에 : http://www.bennadel.com/blog/314-ColdFusion-CGI-Variables-Hot-Linking-And-Poor-Documentation.htm –

답변

3

왜 그 이미지가 실패하는지 정확히 알아 보려면 더 많은 작업이 필요합니다. FireFox의 Firebug 또는 Safari 또는 Chrome의 콘솔과 같은 것을 사용하여 실패한 요청을 확인하십시오. Fiddler on Windows for IE 또는 Charles on the Mac, Windows, or Linux과 같은 것을 사용하여 ColdFusion 응용 프로그램 서버의 전체 반환 값과 함께 백그라운드에서 발생하는 전체 HTTP 요청을 볼 수도 있습니다. 그들이 왜 실패하고 있는지 정확히 알 때까지는 어떤 종류의 해결책도 찾아 낼 수 없습니다.

기억해야 할 또 다른 사실은 ColdFusion을 통해 이것을 수행하면 모든 페이지가로드 될 때마다 CF 서버에 40 가지 이상의 요청이 발생한다는 것입니다. 따라서 한 페이지는 처리를 위해 CF 서버에 41 건의 조회가 발생합니다. 코드가 가능한 한 빡빡한 지 확인하십시오.

이 경로를 사용하려면 서버 수준 필터 (IIS 또는 Apache)를 사용하여 핫 링크를 방지해야합니다. 그러나 항상 주위에 방법이있을 것이라는 점을 기억하십시오.

+0

크롬의 개발자 도구에서, 그것은 내게 내 알립니다 사라지는 이미지는 "이미지로 해석되었지만 MIME 유형 text/html로 전송 된 리소스"입니다. 내 cfcontent의 형식을 image/jpeg로 하드 코딩 한 경우에도 여전히 텍스트/html임을 알리는 메시지가 표시됩니다. –

+1

그러면 해당 요청 중에 오류가 발생했을 수 있습니다. 내 제안은 찰스를 설치하고 파일을 실행 한 다음 Charles의 세션 결과를 스크롤하여 실패한 요청에 대한 서버의 원시 응답을 봅니다. 나는 그 페이지들에 CF 오류가있는 것으로 추측하고 있습니다. 그래서 당신의 반환은'image/jpeg' 대신에'text/html'이 될 것입니다. –

+1

필자는 Charles를 어떻게 든 설치할 수는 없지만 Fiddler를 설치했는데 사라지는 이미지에 "VIEWPATH 요소가 표현식의 일부로 참조 된 CFML 구조에서 정의되지 않았습니다."라는 오류 메시지가 있습니다. Coldbox에서 오는 것 같습니다. 어쨌든 나는 Coldbox를 거치지 않고'cfcontent'와 함께 cfm을 호출 해 보았습니다. –

관련 문제