2013-08-07 6 views
0

정리 된 텍스트를 반환하는 xss라는 자체 함수가 있습니다. 이 충분한 경우 내가 알고 싶은, 또는 나는 그것을 모든 태그를 삭제하기 때문에 strip_tags을 사용하지 않으려는이필터 XSS 일반 텍스트 및 HTML

function xss($str,$html = false) 
{ 
    if($html){ 
    //HTML Purfier called here 
    }else{ 
    return str_replace(array('&','"',"'",'<','>'), array('&amp;','&quot;','&#39;','&lt;','&gt;'), $str); 
    } 
} 

몇 가지 버그가 있습니다. 나는 그들을 떠나고 싶지만, 저장 개체로 대체하십시오. 이 문자를 대체 할 때 절약됩니까?

+1

두 번째 부분은 다음과 같습니다. http://php.net/manual/en/function.htmlspecialchars.php –

+0

감사하지만 충분 하죠? 나는 확실하지 않다. – Arxeiss

답변

0

문제가 될 수있는 몇 가지 다른 문자를 고려해야합니다. 예 : ':'및 ';'. 다음, 공격자가 'http://yoursite.com/blah/?parameter=javascript:alert(String.fromCharCode(65))'같은 것을 사용할 수 있습니다 (반드시 href 같은) 태그 속성 안의 텍스트를 반환 할 것을 상상하고는 다음과 같이 반영 될 것입니다 :

... 
<a href="javascript:alert(String.fromCharCode(65))"> 
... 

또는 그가 사용할 수있는 ';' 무엇이든 거기에 반영되면 스크립트 내에서 새 줄을 시작합니다. 가능한 모든 문제가되는 문자를 포함 시키십시오.