2012-05-04 2 views
4

나는 CodeIgniter 1.7.1을 사용하고 있습니다. 내 허용 URI 문자는 같은 설정됩니다CodeIgniter URL에 URI 인코딩 문자를 어떻게 허용합니까?

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_()@&\-'; 

내가 http://website.com/index.php/controller/method/test%21 같은 주소를 입력하면 페이지가로드 나에게 오류 제공하지 않습니다 이해가 안

Code igniter: An Error Was EncounteredThe URI you submitted has disallowed characters.

합니다. %20 (공백)은 허용되지만 %21 (느낌표)는 허용되지 않습니다.

+2

당신이 허용되는 문자 목록에 느낌표가 있는가 작동 하는가? 나는 브라우저가 % 21을 (를) 해석한다고 생각합니다! CodeIgniter가 구문 분석 할 때 "% 21"이 아닌 "!"가 표시됩니다. – Goldentoa11

+0

@ Goldentoa11 목록에 가능한 모든 구두점을 추가해야합니까? 나는 모든 캐릭터가 거대한리스트를 쓰지 않아도되도록 그냥 허용해야 하는가? 이 구성 파일의 주석은 "수행중인 작업을 알지 못하는 한 모든 문자를 허용하지 마십시오"라고 말합니다. 내가 모든 캐릭터를 허용한다면 어떤 보안 허점이 열릴 것입니까? – JoJo

+0

귀하의 첫 번째 질문에 따라, 나는 그것이 당신이해야 할 일이라고 생각합니다. 두 번째 질문에 따라, CI가 그렇게하지 않는다고 말하면, 내가하지 않은 장면에서 무슨 일이 벌어지고 있는지 이해하지 않는 한, 내가 말한대로 따라갈 것입니다. 귀하의 세 번째 질문에 따라, 나는 어떤 종류의 구멍이 열릴지 모르겠다. – Goldentoa11

답변

5

% 21 구문 분석! codeigniter에서. 그래서 codeigniter는 이것을 지원하지 않습니다! 허용 된 URI cofig 파일로 :

$config['permitted_uri_chars'] = 'a-z 0-9~%.:_()@&\-!'; 
+0

URL에있는 약 (+)은 무엇입니까? –

+0

이렇게 추가하려고하면 URL에 허용되지 않는 문자가 표시됩니다. $ config [ 'permitted_uri_chars'] = 'az 0-9 ~ %. :;, _^$ - +'; ' –

-1

이 그것을 탈출 시도, 그

\\+ 
관련 문제