2011-02-27 4 views
0

내가 XSS를 방지하기 위해 텍스트 상자에 PHP-based tool HTML Purifier를 사용하고 싶습니다 정화 그러나 나는 다음과 같은 수 있도록 싶습니다 <b>, <i> 같은최적의 설정은

  1. 기본 태그, <u>
  2. 링크
  3. 이미지

모든 CSS와 JavaScript를 차단하고 싶습니다. 방금 HTML 정수기를 시도하고이 경우 실패했습니다. 그냥 this example을 참조하십시오. 어떻게 처리 할 수 ​​있습니까?

또한 나는 (당신이 그것을 링크를 추측하는 것처럼) #abcd@abcd 사용자 정의 HTML 로 대체하는 형태의 모든 단어를 원하는 것입니다. 이걸로 가능할까요, 아니면 직접 교체해야합니까?

+0

"실패"를 정의하십시오. '<'이후의 모든 것을 삼키는 것은 정확하지는 않지만 보안 문제는 아니며 –

+0

이나 거짓 긍정 인 – aWebDeveloper

+0

과 같은 것이지만 정확히 왜 그 문제가 있습니까? 어떻게 악의적 인 콘텐츠를 사이트에 밀입국시키는 데 사용할 수 있습니까? –

답변

-2

정규 표현식 및 전자 수정

 

function checkTag($tag) { 
    $tag = removeslashes($tag); 

    ... 

    return $secureTag; 
} 

$html = preg_replace("/<[^>]+>/e", " checkTag('\$0')", $input); 

+1

HTML 정제기의 최적 설정에 대해 묻습니다 – aWebDeveloper

-2

PHP는 당신이 원하는 것을 정확히 할 것 같다 내장 기능을 가지고 있습니다. 그것은 몇 가지 태그를 허용 할 수 있도록

http://php.net/manual/en/function.strip-tags.php

는 심지어 화이트리스트 기능이 있습니다.

#abcd@abcd 부분에 대해서는 preg_replace()을 사용해야합니다. 나는 비슷한 기능을 사용했고 그것은 매우 잘 @abcd 부분을 않습니다 :). b,i,u,a[href],img[src|alt]

처럼 뭔가 HTML.Allowed

$sClickText = preg_replace("/\@([a-zA-Z0-9_])+/",' <a href="#reply" onClick="reply(\'' . "$0" . '\')">' . "$0" . '</a>',$sInputText); 
+1

허용 태그가 안전하지 않습니다 - attacer가 onclick, ommouseover 매개 변수를 거기에 넣을 수 있기 때문에 – SergeS

+0

'strip_tags'만으로는 XSS 그래도. –

+1

나는 html 정수기에 대한 최상의 설정을 묻습니다 – aWebDeveloper

4

세트 here를 참조하십시오.

+0

URL 단축 링크를 확장하십시오. –