자동입력 방지 애드온
패킷을 생성해 자동으로 입력하는 글을 방지합니다.
자료 분류 | 애드온 | 0 / 0 | |
---|---|---|---|
라이선스 | 기타 라이선스 | ||
제작자 | suritam9.myid.net | ||
홈페이지 | suritam9.pe.kr | ||
설치 경로 | ./addons/autodeny | ||
최초 등록일 | 2014-05-05 00:00 | 전체 다운로드 | 0 |
최근 버전 | 0.7 |
다운로드
|
|
다운로드 | 0 | ||
최근 업데이트 | 2014-05-05 00:00 | 0 / 0 | |
세션 값과 content를 조합해 md5 해시를 생성하고, 입력 필드로 받습니다.
php 에서도 같은 방식으로 생성해 임의 세션도 차단 됩니다.
$ss=session_id();
$cb=Context::get('autoflag');
$ct=htmlspecialchars_decode(Context::get('content'));
$ct=str_replace("\r\n","",$ct);
$ct=str_replace("
","",$ct); $ct=str_replace("","",$ct);
$ct=trim($ct);
$cb_base64=$ss.base64_encode($ct);
$cb_md5=md5($cb_base64);
자동으로 임의 세션을 통한 글쓰기를 방지합니다.(물론 조작 세션과 content를 조합해 해시 값을 만들면 못 막죠. 그런데, 그럴 일은 거의....)
document.getElementsByTagName("iframe").item(0).contentWindow.document.body.innerHTML 을 이용해, 버튼을 한번만 눌러도 되는군요.
옵션과 사용자에 의한 별도 입력이 없는 게 장점입니다.
$output = str_replace('', '', $output);
$output = str_replace('', '', $output);
등록 버튼과, 댓글 등록 버튼 앞에 입력 필드를 replace로 넣어 해당 부분이 다르면 필드가 나오지 않습니다. 스킨이나 버전에 따라 확인하셔야 될 듯 합니다.
1.7.3.4 에서 테스트 되었습니다.
테스트 과정에서 내용이 아예 없는 항목에 글에대해서는 유효하지 않는 것을 발견 했습니다. 그 부분을 해결하기 위해서 xe가 설치된 경로의 /modules/board/tpl/filter/insert.xml 경로의 minlength를 수정해 줬습니다. contents가 없어도 등록을 가능하게 한 xe의 정책에 의문이 드는군요. 암튼, 내용이 없는 공격이 가능한 것 까지 파악한 스패머들은 대단하군요.
<node target="content" required="true" minlength="1" />
이 자료는 XE 공식 자료실에서 자동으로 다운로드한 자료입니다. 원본 : [공식 자료실 게시글로 이동] |