2015-01-21 3 views
0

CodeIgniter의 xss_clean 문제 CodeIgniter의에서는

<script>alert('Hello')</script> 

내가 [removed] 함유하지 않고 출력을 원하는이 입력 문자열이 출력

[removed]alert&#40;'Hello'&#41;[removed] 

, alert&#40;'Hello'&#41;

에게 제공 $this->input->post() ( xss_clean=true으로)

마지막으로 나는 system/core/security.php 파일을 편집했다.

$str = preg_replace("#<(/*)(script|xss)(.*?)\>#si", '', $str); 

으로

$str = preg_replace("#<(/*)(script|xss)(.*?)\>#si", '[removed]', $str); 

에서

그것은 작업을 수행합니다.

시스템 파일을 변경하지 않고이 작업을 수행 할 수있는 다른 방법이 있는지 묻는 것입니다. 또한

,

내가 codeigniterxss_clean 기능을 사용할 수 있습니까?

답변

1

예, CI_Security에서 클래스를 확장하려고하고 새로운 기능을 쓰기 :

protected function _do_never_allowed($str)

이 더 OOP의 방법이 될 것입니다.

편집 :

CodeIgniter를 사용하면 핵심 클래스를 확장 할 수 있습니다.

Extending CodeIgniter Security.php to enable logging

1

당신은 핵심 파일을 편집해서는 안 :이 링크를 참조하십시오.

대신 응용 프로그램에서 Security 클래스를 확장해야합니다.

./application/core에서 "MY_Security.php"라는 파일을 만들고 Security 클래스를 확장하십시오.