나는 사용자가 파일을 업로드하는 간단한 PHP 웹 응용 프로그램이 있습니다. 업로드 된 파일은 다른 사용자가 액세스 할 수 있습니다. 완벽하게 작동했습니다. 최근에 사용자가 file_name # 234324라는 이름의 파일을 업로드했습니다. 이 파일을 웹 응용 프로그램을 통해 열었을 때 파일 이름이 존재하지 않는다는 오류가 발생했습니다. 브라우저가 파일 이름을 올바르게 찾을 수 없기 때문에 파일 이름에 (#)이 있기 때문입니다. ? 난이름에 해시 (#)가있는 파일이 웹 브라우저에서 열리지 않습니다.
답변
#
은 URL에 특별한 의미가 있습니다. 이러한 문자는 percent-encoded에 해당하는 문자로 나타내야합니다.
URL에 URL을 추가하기 전에 파일 이름을 urlencode
으로 전달하십시오.
(사용자가 "><script>etc</script>
이라는 파일을 업로드 할 때 XSS로부터 보호받을 수도 있습니다.)
게으른 사람들에게는 '% 23'이 될 것입니다. –
사람들은 파일 이름에 다른 문자를 넣기 시작하면 XSS 공격에 취약 할 수 있습니다. * 게으른 * 게으른, 잘 테스트 된 기존 기능을 사용하십시오. – Quentin
도움 주셔서 감사합니다. –
는 어떻게해야합니까? 난 정말 당신을 잘 파일 이름
을 변경하지 않는 파일 이름을 변경하지 않으 어떻게해야합니까 해야한다. URL의 해시 부분은 서버에 전송되지 않고 클라이언트 (브라우저)의 해석 대신 예약됩니다. 프로토콜, 서버, 경로 이름 및 쿼리 문자열 만 서버로 전송됩니다.
좋은 파일 업로드 시스템의 일부로 유효한 파일 이름을 시행하거나 필요에 따라 수정해야합니다.
감사합니다. 투표 할 수는 없지만 대답은 유용했습니다. –
- 1. Doxygen : 이름에 해시 (#)가있는 파일
- 2. 로컬 PHP 파일이 브라우저에서 열리지 않습니다.
- 3. .pptx 파일이 Firefox 브라우저에서 열리지 않습니다.
- 4. 파일이 ifstream에 열리지 않습니다
- 5. .des 파일이 xcode에서 열리지 않습니다.
- 6. JAR 파일이 열리지 않습니다.
- 7. 파일이 열리지 않습니다.
- 8. .Jar 파일이 열리지 않습니다
- 9. pdf 파일이 열리지 않습니다.
- 10. 인터넷 브라우저에서 PDF가 열리지 않습니다.
- 11. HTML 파일이 웹 브라우저에서 열리지 않는 이유는 무엇입니까?
- 12. Webclient.DownloadFile() .aspx 파일이 열리지 않습니다.
- 13. Visual Studio 2010에서 PHP를 실행해도 브라우저에서 PHP 파일이 열리지 않습니다.
- 14. docx 파일이 IE 8에서 내용 처리 인라인으로 브라우저에서 열리지 않습니다.
- 15. 원격 s3 Pdf 파일이 webview에서 열리지 않습니다.
- 16. SWF 파일이 IE에서 열리지 않습니다.
- 17. JMeter - 인증 파일이 열리지 않습니다.
- 18. 파일이 안드로이드에서 애셋에서 열리지 않습니다.
- 19. 내 SSIS 파일이 열리지 않습니다
- 20. Windows에서 jar 파일이 열리지 않습니다.
- 21. .fig 파일이 Matlab에서 열리지 않습니다.
- 22. PDF 파일이 Android에서 열리지 않습니다.
- 23. .Wixproj 유형의 파일이 열리지 않습니다.
- 24. Jquery 웹 사이트가 안드로이드 브라우저에서 열리지 않습니까?
- 25. * .do 파일이 내 IE7에서 열리지 않습니다.
- 26. 브라우저 사용 InfoPath 양식이 웹 브라우저에서 열리지 않습니다.
- 27. 특정 PHP 파일이 열리지 않음
- 28. PHP 파일이 열리지 않음
- 29. 이클립스의 프로그램이 열리지 않습니다. 프로젝트 파일이 없습니다.
- 30. Webstorm IDE 8.0.5에서 더스트 파일이 열리지 않습니다.
브라우저 '서버'에'# '뒤에 아무 것도 전달하지 않습니다. 따라서 유일한 100 % 올바른 방법 - 그러한 이름을 금지합니다. (그렇지 않으면 - 직접 파일 이름을 통해서만 다운로드 할 수있는 다른 방법을 제공하십시오) –
"http : //localhost/masood2/files/7255177-54540-01%20Art#5941.xlsx"그래서이 링크에서는 브라우저에서만 # 부분까지 이해하십시오. –
브라우저는 나머지 부분이 의미하는 바를 이해합니다. URL에서 의미하는 바를 의미하지는 않습니다. – Quentin