으로 이어졌습니다. 이전에 결코 만난 적이없는 문제가 있으며, 아파치 구성과 관련이 있다고 생각합니다.apache : 쿼리 문자열 (URL)의 이스케이프 처리 된 움라우트가 403
먼저 검색 양식이있는 PHP 스크립트가 있습니다. 양식은 POST를 통해 전송됩니다.
검색 결과 목록이 있습니다. 여기에 원래 검색 쿼리가 URL의 일부로 전달됩니다 (예 : search.php? id = 1234 & query = foo). 이것은 또한 작동합니다 - 한 움라우트 (äöüÄÖÜß ...) 문자가 전송되지 않는 한.
가 최대한 빨리 검색 쿼리, POST 작품으로 쿼리 문자열을 전달하는 첫 번째 부분에서 움라우트가 포함되어 있지만 URL에 (를 urlencoded)을 통과으로 그래서 403
에 이르게 :
search.php?id=1234&query=bar
는search.php?id=1234&query=b%E4r
403 (% E4 = "A"UTF-8를 urlencoded)search.php?id=1234&query=b%C3%A4r
403 리드 리드 동작 (%의 C3 %의 A4 = "A"를 UTF-8를 urlencoded)- POST를 통해 움라우트 제출하기
나는 애플 리케이션을 iso-8859-1에서 utf-8로 변환했으나 아무런 차이가 없었다.
로컬 컴퓨터에서도 테스트를 거쳤습니다. 예상대로 완벽하게 작동합니다.
원격 서버 설정 (작동하지 않는 경우) :
아파치/2.2.12 (우분투),
PHP 버전 5.2.10-2ubuntu6.7, 수호신 패치 0.9.7을 통해 CGI
지역 설정 (여기에 같은 작품)/FastCGI를 :
아파치/2.2.8 (Win32에서) PHP/5.3.5
PHP 버전 5 .3.5 mod_php를 통해
누구도 원격 아파치/PHP-CGI가 urlencoded 움라우트를 URL에서 허용하지 않는 이유를 알고 있습니까?
추가 정보 : 나는 또한 이름에 움라우트가 포함 된 정적 파일을 만들려고 시도했으며 모두 /t%C3%A4st.php
및 /täst.php
이 문제없이 처리됩니다. täst.php?foo=täst
이 실패합니다.
참고 : % 28 "("이다 ?foo=%28
도 작동
pedantic, 나도 알아,하지만 "ß"는 움라우트가 없다 ... – Stephen
죄송합니다 :)이 특별한 종류의 특별한 문자는 어떻게 불려지나요? – stefs
깨진 규칙이있는 mod_security와 유사한 모듈이 있습니까? 이 또한 같은 다른 ascii 문자로 발생합니까? – arnaud576875