2012-01-10 12 views
-1

私は私のようないくつかのHTMLタグを禁止したいユーザからの入力を取っていますから、いくつかのHTMLタグなどの属性を削除し、また、onmouseover属性などのonclick&入力

ユーザー、れるonmousemove、onclickのような属性を禁止したいする方法議論のためにhtml php jQueryのようなプログラミング言語コードを記述することができます。しかし、それは

を実行すべきではありません。ここ

+0

HTML/DOMパーサーをお試しください。 –

答えて

4

は、私はあなたがあなたのニーズに合わせて調整できることを使用していた機能である私を導いてください。

function strip_unsafe($string, $img=false) 
{ 
    // Unsafe HTML tags that members may abuse 
    $unsafe=array(
    '/<iframe(.*?)<\/iframe>/is', 
    '/<title(.*?)<\/title>/is', 
    '/<pre(.*?)<\/pre>/is', 
    '/<frame(.*?)<\/frame>/is', 
    '/<frameset(.*?)<\/frameset>/is', 
    '/<object(.*?)<\/object>/is', 
    '/<script(.*?)<\/script>/is', 
    '/<embed(.*?)<\/embed>/is', 
    '/<applet(.*?)<\/applet>/is', 
    '/<meta(.*?)>/is', 
    '/<!doctype(.*?)>/is', 
    '/<link(.*?)>/is', 
    '/<body(.*?)>/is', 
    '/<\/body>/is', 
    '/<head(.*?)>/is', 
    '/<\/head>/is', 
    '/onload="(.*?)"/is', 
    '/onunload="(.*?)"/is', 
    '/<html(.*?)>/is', 
    '/<\/html>/is'); 

    // Remove graphic too if the user wants 
    if ($img==true) 
    { 
     $unsafe[]='/<img(.*?)>/is'; 
    } 

    // Remove these tags and all parameters within them 
    $string=preg_replace($unsafe, "", $string); 

    return $string; 
} 
+1

コードを渡すことができますが、実行されないようにするには、htmlentities関数を使用して、テキストを視覚的に一貫していて実行可能ではないコードにレンダリングします。潜在的に危険なものを取り除いた後で実行する必要があるかもしれません。それはすべてあなたがしようとしていることに依存します。 – Tanoro

+1

onload =マルウェア()onload = 'マルウェア()' ????? – user956584

関連する問題