T

관리자님 conv_content() 내용중에

· 2008-11-27 (목) 13:44:24 · 4589 · 6

관리자님 conv_content() 내용중에 

$content = preg_replace("/(on)([a-z]+)([^a-z]*)(\=)/i", "on$2$3$4", $content);

위내용을 아래 내용처럼 바꺼야 되지 않나 싶내요..
재가 ie6를써서 ie6에서만 그런지는 몰라도 <font> 글자도 <font> 로 변경되서 재대로
동작이 안되네요..

$content = preg_replace("/(^on)([a-z]+)([^a-z]*)(\=)/i", "on$2$3$4", $content);

|

댓글 6개

$content = preg_replace("/(\s+)(on)([a-z]+)(\s*)(\=)/i", "$1on$3$4$5", $content);

이걸로 해 보세요.
내 이것도 잘되내요..
정규식을 잘몰라서 찾아서 수정한건데.. ㅎㅎ
시간되시면 letsgolee 코드도 설명 한번 부탁 ㅎ
$content = preg_replace("/(^on)([a-z]+)([^a-z]*)(\=)/i", "on$2$3$4", $content);

이걸로 하면 <font>는 잘 나올지는 몰라도 <a onclick="alert('xss')>에서 onclick이 제대로 수정되나요???

제가 한 건 일반적으로 onclick과 같이 on 다음에 a-z의 문자가 오는 것만 제거하면 된다는 의미에서 했구요... 그리고 앞의 \s+를 준 건 <font와 같은 것은 빼고 오직 앞에 공백문자가 들어간 경우만 치환하라는 뜻입니다...
내 그렇군요.. 감사합니다.
2008-11-27 (목) 22:32:32
([a-z]+)
보다
([a-z_]+)
가 좋겠습니다.
on_click은 인식 안되니까 상관없습니다...
댓글을 작성하시려면 로그인이 필요합니다.

자유게시판

202,933건
+
제목 글쓴이 날짜 조회
08-11-27 조회 2,979
08-11-27 조회 1,305
08-11-27 조회 1,282
08-11-27 조회 1,220
08-11-27 조회 4,590
08-11-27 조회 1,376
08-11-27 조회 1,228
08-11-27 조회 1,324
08-11-27 조회 1,199
08-11-27 조회 1,198
08-11-27 조회 1,333
08-11-27 조회 4,411
08-11-27 조회 1,337
08-11-27 조회 1,305
08-11-27 조회 1,480
08-11-26 조회 1,752
08-11-26 조회 1,311
08-11-26 조회 1,310
08-11-26 조회 1,323
08-11-26 조회 1,774