CodeIgniter의 XSS 필터는 내용이 오염되었는지 여부에 관계없이 모든 입력을 처음부터 살균하는 대신 특정 사물에 대한 정규 표현식을 통해서만 반응합니까? 또한, 왜 입력시 및 출력되지 이루어집니다 (있어야 할 것처럼?)CodeIgniter의 XSS 필터가 모두 지워지지 않는 이유는 무엇입니까?
0
A
답변
8
왜 CodeIgniter의의 XSS 필터는 관계없이 경우 대신 처음부터 모든 입력을 살균의 특정 일에 정규 표현식을 통해 반응 않는다 내용이 오염 되었습니까?
이것은별로 의미가 없습니다. 먼저 무엇인가를 확인하지 않고 무엇인가가 "오염 된"것인지 아닌지를 말하면 어떨까요? CI의 xss_clean()
의 정의에
xss_clean()
으로 "sanitize"입력을 한 경우, 예를 들어 내 블로그에 자바 스크립트 또는 PHP 코드 예제를 게시하거나 사용자가 주석에서 어떻게 처리 할 수 있습니까? 결국
[removed]
이됩니다. 또한
이 입력하는 동안 수행하지 출력에,
당신은 당신의 CI의 설정에서 글로벌 XSS 필터를 사용하는 옵션이 어떻게 (이해야하는데?처럼) 왜, 어떤 것 손에 넣기 전에 xss_clean()
을 $_POST
, $_GET
및 $_COOKIE
데이터에 자동으로 실행하십시오. 이것은 자신을 보호 할 수있는 최저 수준이며, 항상 옵션을 사용하여 데이터를 명시 적으로 정리할 수 있습니다. 예를 들면 :
// With the Input class on $_POST data
$this->input->post('username', TRUE); // Second parameter runs xss_clean
// Using the Security class on any data
$this->security->xss_clean($username);
// Using the Form Validation class to automatically clean the input
$this->form_validation->set_rules('username', '', 'xss_clean');
여전히 단순히 이미 당신을 위해 xss_cleaned 될 글로벌 필터를 가능하게하여, 대신 $_POST['username']
을 사용할 수 있기 때문에. 이것은 게으른 방법이며, 불행히도 전역을 정리하면 되돌릴 방법이 없습니다.
XSS 공격이 언제 어디에서 발생할 수 있는지 이미 알고있는 경우 원하는 경우 쉽게 사용할 수있는 기능이 있습니다. 이것은 이 아니며은 마술처럼 모든 데이터를 "안전"하게 만듭니다. 단지 악의적 인 코드 삽입을 막을뿐입니다. </div>
과 같은 더 무해한 필터가이 필터를 통과합니다. 사용되는 문맥에 대해 적절한 방법으로 명시 적으로 입력을 항상 소독해야합니다.
관련 문제
- 1. 인터벌 시간이 지워지지 않는 이유는 무엇입니까?
- 2. ie8 xss 필터가 활성화되었는지 감지
- 3. 파일을 닫으면 오류 상태가 자동으로 지워지지 않는 이유는 무엇입니까?
- 4. 내 캐치가 모두 실행되지 않는 이유는 무엇입니까?
- 5. 배열/필터가 배열의 아무 것도 작동하지 않는 이유는 무엇입니까?
- 6. IE MIME 필터가 생성되거나 호출되지 않는 이유는 무엇입니까?
- 7. -ms 필터와 필터가 모두 IE의 그래디언트에 사용됩니까?
- 8. Eclipse의 Problems보기에 내 오류가 모두 표시되지 않는 이유는 무엇입니까?
- 9. 이 스레드 예제가 작동하지 않는 이유는 무엇입니까? 모두 wait()의
- 10. IE9 : 유효성 검사 메시지가 지워지지 않는 경우
- 11. IE의 XSS - 우회 방법?
- 12. JSON 데이터 요청 후 Firefox에서 "Connecting ..."메시지가 지워지지 않는 이유는 무엇입니까? 파이어 폭스 4.0 또는 5.0에서
- 13. ListView.Sorting 속성을 변경하면 모든 하위 항목 이미지가 지워지지 않는 이유는 무엇입니까?
- 14. sendRedirect가 작동하지 않는 이유는 무엇입니까?
- 15. "디렉토리가 존재하지 않는 이유는 무엇입니까?"
- 16. 문자열이 일치하지 않는 이유는 무엇입니까?
- 17. (스프링 보안) 서블릿 필터가 두 번 호출되는 이유는 무엇입니까?
- 18. VSTO Outlook GetTable 필터가 유효하지 않은 이유는 무엇입니까?
- 19. 퍼지 검색을 수행 할 때 Solr 필터가 무시되는 이유는 무엇입니까?
- 20. XSS 예방을 위해 ValidateRequest = "true"가 아닌 이유는 무엇입니까?
- 21. parenscript 함수가 모두 소문자로 변경되는 이유는 무엇입니까?
- 22. mex endpoint와 httpGetEnable이 모두 필요한 이유는 무엇입니까?
- 23. PHP 정규 표현식이 모두 실패하는 이유는 무엇입니까?
- 24. winpcap에서 .lib과 .dll을 모두 실행해야하는 이유는 무엇입니까?
- 25. XSS 정규식
- 26. CSS/Codeigniter의 변수는 무엇입니까?
- 27. CodeIgniter의 모듈은 무엇입니까?
- 28. getToolTipText가 호출되지 않는 이유는 무엇입니까?
- 29. MapViewOfFile이 실패하지 않는 이유는 무엇입니까?
- 30. 람다에서 인쇄가되지 않는 이유는 무엇입니까?
글로벌 xss 필터를 켜고 동시에 적용 가능한 경우 xss_clean()을 명시 적으로 적용해도 괜찮습니까? – Obay
get, post 및 cookie를 직접 사용하는 경우 : 전역 적으로 활성화 된 경우 필터가 자동으로 해당 항목에서 실행됩니다. 그래도 XSS 용 벡터는 자바 스크립트를 실행할 수있는 곳이라는 것을 기억하십시오. 예를 들어, Excel 또는 텍스트 파일로 인쇄 할 때 문제가되지 않습니다. 나는 항상 filter * output *을 말하고 입력하지 않는다. http://stackoverflow.com/questions/9674848/codeigniter-input-filtering/9675233#9675233 –
... 그렇게 말하면, 그것이 당신이 궁금해하는 것이면 그것을 해치지 않을 것입니다. http : //stackoverflow.com/questions/9714945/is-it-okay-to-repeatedly-xss-clean-data-in-codeigniter –