2014-09-02 2 views
0

내가 정규식을 사용할 수 있습니다 무엇 인라인 자바 스크립트에 대해 잘 작동하지만 그래서이HTML 페이지에서 모든 JavaScript를 제거하려면 어떻게해야합니까?

$html = preg_replace('#<script(.*?)>(.*?)</script>#is','', $html); 

처럼 HTML에 <script> 태그를 제거하는 방법? 나는 그것을이 가진 문제는 내가 모든 속성을 찾을 수 있고, if 문을 유지하는 것입니다 이런 식으로

$nodes = $dom->getElementsByTagName('*'); 
foreach($nodes as $node) 
{ 
    if ($node->hasAttribute('onload')){ 
    $node->removeAttribute('onload'); 
    } 
} 

을 할 수 알아 냈어. 나는 또한 도서관을 보았지만 나는 물건을 작게 지키고 싶다. 빠른 방법이 있습니까? 또한 내가하고있는 일을 계속해야한다면 인라인 속성이있는 멋진 목록이 있습니까?

+4

나는 이것에 대해 나쁜 감정을 갖고 있습니다. 나는 당신이 문제를 잘못된 길로 생각하고 있다고 생각합니다. – Sebas

+0

HTML에서 JS 스트립하기 ... ... @Sebas – user302975

+1

왜 이렇게하고 싶은지에 대해 자세히 알아보십시오. xss에서 사용자를 보호하려고합니까? – Sebas

답변

2

나는 바퀴를 재발 명하지 말고 http://htmlpurifier.org/과 같은 라이브러리를 사용하여이를 수행합니다.

+0

정확히. 이러한 프로젝트를 다시 빌드 할 이유는 없습니다. 그리고 처음부터 사용자가 HTML을 입력하도록 허용하는지 여부는 좋은 질문입니다. 기대하는 텍스트 일 ​​뿐인 텍스트를 텍스트로 처리하면 문제가되지 않습니다. – Brad

관련 문제