본문으로 바로가기

[PHP] 게시판 악성스크립트 방지

category 웹프로그래밍/PHP 2012. 4. 25. 11:45

게시판 스펨글 지우려는데 바다이야기 onmouseover 이벤트 때문에 바다이야기 사이트로 옮겨가는바람에 삭제조차 마음대로 안될때가 있다...  DB입력시에 리플레이스 해버리도록 하자..

function remove_evil_tags($str) {
  $allowedTags = '<h1><b><i><a><ul><ol><li><hr><img><font><span><table><tr><td><p><div>'; // 허용할 테그
  $stripAttrib = 'javascript:|onclick|ondblclick|onmousedown|onmouseup|onmouseover|'.
  'onmousemove|onmouseout|onkeypress|onkeydown|onkeyup|onchange|onblur|onfocus'; // 제거할 속성

  $str = preg_replace("/<(\\/?)(?![\\/a-z])([^>]*)>/i", "&lt;\\\\1\\\\2\\\\3&gt;", $str);
  $str = strip_tags($str,$allowedTags);

  return preg_replace("/<(.*)($stripAttrib)+([^>]*)>/i", "<\\\\1xx\\\\2xx\\\\3>", $str);
 }

 

출처 - PHPSCHOOL.COM Stradivarius님