로그인

검색

자동입력 방지 애드온

패킷을 생성해 자동으로 입력하는 글을 방지합니다.

자료 분류 애드온 0 / 0
라이선스 기타 라이선스
제작자 suritam9.myid.net
홈페이지 suritam9.pe.kr
설치 경로 ./addons/autodeny
최초 등록일 2014-05-05 00:00 전체 다운로드 0
최근 버전 0.7 다운로드

해당 자료는 라이믹스2에서 동작여부가
확인되지 않았습니다.

라이믹스2 동작 인증하기

다운로드 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를 조합해 해시 값을 만들면 못 막죠. 그런데, 그럴 일은 거의....)
 
현재는 에디터에서 등록 버튼을 눌러야 content 필드가 업데이트 되기 때문에 등록 버튼을 두 번 눌러야 하는군요. 에디터의 content로 바로 md5 할 수 있는 방법을 찾으면 업데이트 하겠습니다.
 
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 공식 자료실에서 자동으로 다운로드한 자료입니다.
라이믹스 최신버전에서는 동작하지 않을 수 있습니다.

원본 : [공식 자료실 게시글로 이동]