T

관리자님 conv_content() 내용중에

· 2008-11-27 (목) 13:44:24 · 4588 · 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,922건
+
제목 글쓴이 날짜 조회
08-11-28 조회 1,291
08-11-28 조회 1,122
08-11-28 조회 1,328
08-11-27 조회 1,464
08-11-27 조회 1,355
08-11-27 조회 1,211
08-11-27 조회 1,283
08-11-27 조회 1,191
08-11-27 조회 1,732
08-11-27 조회 2,978
08-11-27 조회 1,305
08-11-27 조회 1,282
08-11-27 조회 1,220
08-11-27 조회 4,589
08-11-27 조회 1,375
08-11-27 조회 1,228
08-11-27 조회 1,324
08-11-27 조회 1,199
08-11-27 조회 1,197
08-11-27 조회 1,333