Extra Form
PHP PHP 7.4
CMS Rhymix 2.1

스팸 광고를 이미지 형태로 만들어서 올리는 걸 막기 위해서

 

https://xe1.xpressengine.com/index.php?mid=download&package_id=18621989

 

이 애드온을 사용 중입니다.

 

제가 테스트 해봤을 땐 정상적으로 잘 작동을 합니다.

 

그런데 최근에 이걸 무력화하고 스팸 이미지를 올리는 경우가 있더라구요.

 

분명 스팸 필터에 등록된 해시값과 동일한 파일인데 어떻게 업로드를 하는 건지 모르겠네요.

 

그 게시물에 있는 파일을 제가 업로드 하려고 하면 안되거든요...

 

서버 로그를 보면 해당 스팸은 PC에서 네이버웨일 브라우저를 이용해서 작성된 글이던데 

 

제가 네이버웨일로 동일한 파일을 업로드 해보면 차단이 잘됩니다. (크롬, 엣지도 잘됩니다)

 

어떤 꼼수로 스팸필터를 피해서 파일을 업로드 하는걸까요?

 

첨부파일이 있는 걸 보면 외부 이미지 삽입 같은 기능을 이용한 건 아닌듯 합니다.

 

 

  • profile

    추측해보면, (1) insertFile 이외에 다른 함수로 올리는 방법이 있다, (2) 스패머가 올릴 당시에는 그 이미지가 그 이미지가 아녔다. 둘중 하나겠네요. (1)번 방법이 있는지는 모르겠고,

    (2)번 방법은 처음 올릴때는 사이즈나 이미지가 약간 다른데, insertFile을 거치면서 해당 사이즈의 이미지로 바뀐 것 아닐까 추측해볼수 있겠죠. 예를들면, insertFile 내부에 fail safe로 파일 크기나 이미지를 조절하는 기능이 있는 것 같은데, md5를 구할때는 원래 이미지로 구했는데, 이 부분을 통과하면서 md5 값이 바뀌어서 최종적으로는 바뀐 값으로 저장되는 것 아닐까요. 관리자는 이 사실을 모르고 최종 md5만 스팸필터에 등록해놨으니 바뀌기 전 원래 md5로 올리는 이미지가 계속 통과되는 것이구요.

    즉, md5 구하는 부분을 before trigger 에서 이런 필터링을 거친 이후로 옮겨 보시면 답이 나올것 같습니다.

  • profile ?
    2번이 맞는거 같네요!
    png 파일의 용량을 줄이기 위해서 png->jpg 변환 옵션을 활성화해뒀는데 스패머는 png 파일로 업로드를 하고 저는 변환된 jpg 파일의 해시값으로 스팸 등록을 하다 보니 차단이 안되는 거였네요. 감사합니다.