인터넷정보

[보안] IE hack 방지]게시판 본문에서 js 제거

알 수 없는 사용자 2007. 10. 17. 16:21
주소에 0d0a -_-;
IE Hack 이네요...
javascript 가 실행되버리다니 이런...

해보니까 IE 는 엔터를 무시하는군요;;; 위험한데...
<a href="java
script:
alert(
'메롱'
);
">메롱</a>



IE 에서 href 주소의 엔터는 가볍게 무시되고 실행됩니다.

html 허용한 게시판에서 js 를 제거하도록 하게 되어 있다면,
정규식을 좀더 세밀하게 할 필요가 있겠습니다.

아래는 예로써만 참조하시고, 알아서 강화하세요.

$html = preg_replace('/on([^\'">=]+=)/i', 'off\1', $html);
$html = preg_replace_callback('/(href|src)[\t\s\r\n]*=[\t\s\r\n]*((["\']).*?(?<!\x5c)\3)/is', 'iehack_escape', $html);
$html = preg_replace('/((href|src)=.?)(j(ava)?)?script/i', '\1javaworker', $html);

function iehack_escape($matches)
{
    return $matches[1].'='.preg_replace('/(&#(x0*[da]|0*1[03]);|[\r\n])/i', '', $matches[2]);
}


출처:phpschool 송효진님
반응형