주소에 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 송효진님
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 송효진님
반응형
'인터넷정보' 카테고리의 다른 글
Apache expires 설정으로 브라우저 캐시 (0) | 2007.10.17 |
---|---|
Apache expires 설정으로 브라우저 캐시 (0) | 2007.10.17 |
웹에디터 fontSize=1의 고질적인 문제에 대한 고찰 (0) | 2007.10.17 |
웹에디터 fontSize=1의 고질적인 문제에 대한 고찰 (0) | 2007.10.17 |
[보안] IE hack 방지]게시판 본문에서 js 제거 (0) | 2007.10.17 |
팝업창 기능별 옵션 적용해서 새창 띄우기.. (0) | 2007.10.17 |
팝업창 기능별 옵션 적용해서 새창 띄우기.. (0) | 2007.10.17 |
음악파일을 랜덤하게 듣기 (0) | 2007.10.17 |
음악파일을 랜덤하게 듣기 (0) | 2007.10.17 |
시작 날짜를 알려주는 소스 (0) | 2007.10.17 |