2012-01-27 3 views
0

url을 수락하는 입력 필드가있는 양식이 있습니다.Codeigniter 양식 입력의 urlencoded 문자열

누군가가 URL 인코딩 요소를 사용하여 URL을 제출할 때까지 모든 것이 잘 작동합니다. URL은 심지어 어떤 형태의 검증 전에 http://example.com/a=xx&b=#yy

로 그

http://example.com/a=xx&b=%23yy

내가이 문자열을 수신하고 같이 보입니다, $this->input->post('url')는 URL 인코딩 된 요소를 디코딩. 입력 된 그대로 정확하게 받아야합니다.

정규 및 다중 부분 형식으로 시도했습니다.

어떤 아이디어가 그 원인입니까?

+0

양식을 제출하는 방법은 무엇입니까? 일반적으로? 아니면 JavaScript를 사용하고 있습니까? – Quentin

+0

@Quentin이 정상적으로 제출되었습니다. – applechief

답변

0

application/config.php에서 XSS 필터링을 TRUE로 설정 했습니까?

$config['global_xss_filtering'] = TRUE; 

그래서 당신은 다음과 같은 옵션 매개 변수를 설정하여 필터링을 해제 할 수있는 경우 :

$this->input->post('url', FALSE) 

은 또한 응용 프로그램/config.php를에서 "허용 된 URL 문자는"제정신이 있는지 확인하십시오.

URLEncode/클라이언트와 서버 모두를 디코딩 할 수 있습니다.

+0

Nop, 이것은 그것을 만들지 않았다. – applechief

0

아마도 CodeIgniter의 입력 클래스에는 약간의 마법이 있습니다. $ _POST를 직접 print_r 해보십시오. 그 URL은 거기서 영향을받지 않습니까?

+0

흥미 롭다면 $ _POST조차도 해독됩니다. – applechief

+0

꽤 재미 있습니다. 어쩌면 방화범이나 무언가를 사용하여 실제로 어떤 데이터가 전송되는지 확인해야합니다. – Jasmo

+0

예, 시도해 보았습니다. 올바르게 제출되었습니다. PHP가 히트 할 때 깨졌습니다. – applechief