2009-09-09 4 views
1

내 사이트의 사용자가 뉴스 항목을 게시 할 수 있습니다. 그러나 지금은 HTML이가는 한 모두 명예 시스템입니다.PHP : 사용자가 특정 태그로 게시물을 만들 수 있도록 허용

function postNewsItem($subject, $body, $userid){ 
    $time = time(); 
    $subject = mysql_real_escape_string($subject); 
    $body = mysql_real_escape_string($body); 
    $q = "INSERT INTO news (subject, body, userid) VALUES ('$subject', '$body', '$userid')"; 
    $result = mysql_query($q, $this->connection); 
    return 1; 
} 

나는 사용자가 등 등, 굵게, 테이블을 구축, 이미지에 자신의 단어를 링크 할 수 있도록하려면,하지만 난 그들이 악성 스크립트 무엇-하지에 연결할 수 싶지 않아요. 사용자 입력에서 HTML을 벗어날 수있는 방법이 있지만 특정 태그를 허용하면서 그렇게 할 수있는 방법이 있습니까?

답변

6

HTML PUrifier을 사용하십시오. 그것은 기본적으로 허용 태그의 화이트리스트를 만들 수 있으며 다른 것들은 걸러 낼 수 있습니다.

6
당신이 strip_tags를 사용하고 허용 할 수

특정 태그 당신은 몇 가지 특성을 소독해야합니다 물론

www.php.net/strip_tags

<?php 
$allow = '<table><thead><th><tr><td><tbody><tfoot><img><a><b><i><u>'; 

$body = mysql_real_escape_string(strip_tags($body, $allow)); 
?>