글쓰기 메뉴

스팸 및 댓글에 대한
의견을 구합니다.

안녕하세요.


광고글과 광고댓글로 몸살이었던적이 있었죠.

제 관리나 기능으로 해결하지 못하고 지저분함에 사용자들이 떨어져나가자 효과없음을 느낀 스패머가 더 이상 활동하지 않았던건죠.


다른 공격적인 사용자라면 음담패설이나 모욕적인 댓글을 남기는 사용자가 있었구요.

아무튼 해결해야 하는 문제임은 분명하죠.

아래의 옵션 중에 투표를 해주시거나 다른 방안을 댓글로 알로주시면 작업 기일을 공표하고 진행토록하겠습니다.


1) 신고 기능

댓글이나 글이 특정횟수 이상 신고 될 경우 블라인드처리되거나 삭제되도록


2) 자신이 작성한 글 (손님글은 제외) 에 달리는 댓글은 적성자가 블라인드(삭제아님) 처리할 수 있는 권한 부여


3) 관리자가 24/7, 365모니터링 ㅋㅋㅋ


기타 의견이나 아이디어 있으시면 댓글 남겨주세요!

어디서 왔지?
[["synd.kr", 24], ["unknown", 83]]
다른 글들
4 4
Square

업데이트 정리
알림과 글거리

열흘 정도 씬디는 손도 못대다가 이틀정도 짬을 내 몇가지 업데이트를 적용했습니다.
더딘 작업의 원인은 작업 시간과 인력이라는 절대적인 리소스의 부족도 있습니다만 그보다는 "잘 쓰고 잘 보여준다" 라는 주제가 너무 어려워 스케치와 설계만 반복하던게 더 크네요.
페이지 단위의 글쓰기나 기절할 정도로 화끈한 결과물 디자인은 설계와 스케치 그리고 자료조사만으로 시간을 잡아먹고 있었고 구글 보이스 입력은 적용 직전까지 개발했었으나 개발단계에서의 테스트 결과와 실사용 테스트 결과의 차이가 커서 시간만 잡아먹고 후일로 미루게 됐네요.
그 외에 사용자 행동과 입력 내용을 분석해 딥/머신 러닝으로 새로운 글쓰기를 제안해보자는 의견도 실사용이 가능한 수준으로 개발하자니 덩어리가 커서 망설이고 있습니다.
십여일의 방치가 마음의 짐이되어 괴로움을 떨쳐내기위해 조금 덩어리가 작고 맥락이 다른 기능들을 업데이트했습니다.
1. 폰트 변경
주 폰트였던 네이버의 나눔 고딕과 MS의 맑은 고딕을 구글과 어도비의 Noto Sans KR 로 변경했습니다.
제목에는 noto 폰트가 사용되고 있었습니다만 이를 본문 등으로 확대 적용했습니다.
그간은 PC와의 평균적인 스타일 유지를 위해 보다 범용적인 고딕체를 사용했습니다만 모바일 사용자가 압도적이라 모바일 기준으로 변경했습니다.
2. 카드 디자인 변경
noto 폰트의 굵기(weight)를 normal 보다 한단계 낮은 300으로 사용하고 있습니다. 기존의 둥그런 덩어리의 카드 디자인이 여리여리한 폰트와 잘 맞지 않아 선을 살려보려고 디자인을 변경했습니다. 덩달아 제목의 크기도 살짝 작아졌습니다.
낯설고 마음에 들지 않는다는 의견이 있습니다만 ㅠ.ㅠ
3. 알림
요원(!)간의 활동과 내부활동을 위한 일반적인 알림 기능을 적용했습니다. 웹소켓 등을 사용하지 않고 있어 완전한 실시간은 아닙니다만 현재의 규모에선 아직 필요를 못 느끼고 있습니다. 
작성 글에 댓글이 등록되거나, 작성한 글이나 댓글이 추천받을 때, 댓글 입력시 @로 사용자를 호출할 때 알림이 생깁니다. 최근 5건의 알림은 우상단에 있는 종 아이콘을 눌러 확인할 수 있습니다.
알림은 7일간 보관되고 7일간의 전체 알림을 확인하는 페이지는 아직 없습니다.
4. 글거리
"ㅇㅇ에 대해 글을 써보세요" 라는 기능의 시작은 게스트 사용자들이 "asdf" 식의 무의미한 테스트 글을 작성하는 것을 좋은 방향으로 유도해보자는 의도였습니다.
그리고 그 뒤로 의미없는 문자들로 작성되는 게스트글들이 사라졌으니 효과가 있었네요.
게다가 주제어를 사용한, 주제어와 유사한 글이 간간히 등록되는 것에 혼자 고무되어(!) 이를 "글거리"라는 이름으로 모두에게 공개하면 좋겠다고 생각하게 됐습니다.
메뉴에서 글거리 항목을 클릭하고 들어가면 간단하게 글거리를 등록할 수 있습니다.
글거리를 등록한 요원이 누군지는 노출되지 않습니다. 재밌는 거리들이 등록되면 저도 멋진 글 좀 써보고 싶습니다 ㅎㅎ
5. 추천글 로직 변경
이건 뭐 씬디 없어지는 날까지 계속 변경되지 않을까 싶습니다. 태그와 키워드, 작성자를 기준으로 보여주던 것 중 작성자 기준을 삭제하고 일정 시간 이내의 추천수와 조회수로 변경해봤습니다.
여전히 딱히 마음에 드는 결과가 나오진 않네요 ㅎㅎ
끝!
+)
아. 시스템 업데이트도 있었네요.
딱히 해킹을 당했거나 성능에 영향이 있는 정도는 아니였지만 스팸시스템들도 계속 스팸 등록을 시도하고 있었고 널리고 널린 감염 시스템들이 묵묵히 공격을 수행하고 있기에 fail2ban 필터를 늘리는 등의 보안 강화 작업이 있었습니다.
그냥... 그랬다구요. ㅎㅎㅎ
뜬금없음에 종지부를 찍어보자면...
씬디 요원님들 애정합니다~ ㅎㅎ
3 2

관리자님

Guest 라는 쓰레기가,

제 글마다 쫓아 다니면서 
더러운 똥을 덧글로 달아놓습니다.
삭제해주세요, 
그리고 IP 블럭해주세요.
0 0

MiniMagick jpg 저장 시 알파채널 검게 나오는 문제

MiniMagick 이나 ImageMagick 에서 jpg 포맷으로 알파채널이 있는 png 등의 이미지를 저장시킬 경우 투명부분이 검게 저장되지.
일부는 코맨드로 convert 를 사용할 경우 background 만 흰색으로 지정하면 문제가 없다고 하던대 MiniMagick 은 mogrify 를 사용해서 그런건지 BG 지정만으로는 안되고 아래처럼 background 를 지정하면서 알파 채널을 삭제하면 되더군.
그리고 중요한점! 반드시 format 을 변경하기 전에 해당 코맨드가 들어가야 정상적인 결과가 나오더군
4 2
Square

로그인 사용자 익명글 작성 기능 추가

로그인한 사용자가 글을 작성할 때 글 작성 폼 하단 좌측에 "익명으로 작성" 체크박스가 추가되었습니다.
해당 체크박스를 체크한 상태로 글을 등록하면 글 보기 화면에서 사용자 정보가 노출되지 않습니다.
노출되는 작성자의 정보만 숨겨지고 수정, 삭제, 알림 등의 기능은 로그인 사용자가 작성한 비익명 글과 동일하게 작동됩니다.
"익명으로 작성" 체크를 기본값으로 사용하고 싶다면 상단 "메뉴 > 내 정보 - 수정" 메뉴에서 "익명으로 글을 작성하려면 체크하세요" 항목을 체크한 후 "수정완료" 버튼을 눌러 개인정보를 변경하시면 됩니다.
특정 유저의 글을 모아보는 페이지에서도 "익명"이 체크된 글은 노출되지 않습니다.
(로그인이 되어 있는 상태라면 -자신의 글 목록을 보고 있다면- 익명글도 노출되며 확인을 위해선 로그아웃 후 해당 페이지에 접속하시면 됩니다)
저는 테스트를 위해 쓸데없이 익명으로 써보고 있습니닼ㅋ
1 1

이 서비스 맘에 안드네

글을 쓰기전에 삭제,수정이 불가하다 계정을 만들라는 얘기가 먼저 나와야 하는거 아닌가요? 글을 다 쓴후에 나오는건 무조건 계정 만들라는거 아닌가싶네요 
의견을 보내는 메뉴도 없고.... 몰라서 처음 들어와 글 남겼다다가 기분이 나쁘네요
2 1

ref: 이 서비스 맘에 안드네

내가 작성한 내 결과물을 내가 관리할 수 없다는 비상식적인 상황에 매우 기분 나쁘셨을 것 같습니다.
수정과 삭제는 '회원가입'하면 되니까 라는 생각이었는데 너무 씬디만의 입장이었네요!

이미 기분이 상하셔서 다시 오시거나, 다시 오셔서 글을 쓰시기는 어렵겠지만 앞으로 다른분들이 똑같은 이유로 기분상하지 않도록 글 작성 시 비밀번호를 입력하면 수정과 삭제가 가능하게 수정했습니다.
덕분에 어제보다 나은 씬디가 된 것 같아 감사합니다.
===
아참, 정황상 바로 직전 글이 삭제나 수정을 원하셨던 글이 아닐까 생각되어 비공개로 처리해두었습니다.
0 0

UFW 방화벽 사용하기 - 우분투 14.04

UFW 는 iptables 의 설정 도구로 Uncomplicated Firewall 이란 뜻이며 문자 그대로 복잡하지 않은 방화벽 설정을 위해 사용된다.
서버는 어떤 목적이든, 공인 IP가 있든 없든 외부에서 접근이 가능하다면 보안 위험에 노출될 수 밖에 없다. IDC 레벨이나 네트워크 구성에서 하드웨어/소프트웨어 방화벽이 이미 사용되고 있을 수 있지만 그런 경우에도 각 서버의 방화벽 설정은 매우 유용하다(고 생각한다)
이런 목적으로 사용하기에 iptables 가 매우 적합하나 설정과 관리가 꽤나 복잡하여 나 같은 사람은 필요할 때 검색으로 룰을 설정했다가 어느 순간 뭔가 동작이 이상하면 iptables 전체를 내려버리는 괴상한 방식으로 운영하게되니 계륵이 아닐수가...
그런 의미로 UFW는 신세계! 방화벽이 미적용된 서버가 있다면 당장 UFW를 올려보자!
설치
기본 정책 설정 (들어오는 패킷은 차단, 나가는 패킷은 허용)
ssh, http, https 허용 (ssh 포트를 변경해서 사용한다면 반드시 직접 포트를 입력하자)
포트를 변경해 사용하거나 특정 포트를 허용
방화벽 ON!
위의 명령을 실행하면 "현재 ssh 연결에 문제가 생길 수 있습니다. 적용하시겠습니까?" 뭐 이런 질문이 나온다. ssh 포트는 허용으로 변경했으니 "y" 를 입력해 진행할 수 있다.
확인
ufw 가 실행되고 있지 않다면 아래와 같은 결과가 리턴된다.
방화벽을 끌 때는 아래와 같은 명령어를 입력한다
등록된 규칙을 삭제할 때는 2가지 방법이 있다.
첫번째는 등록 시 사용한 규칙을 그대로 입력하는 방법
두번째는 각 규칙의 번호를 확인하고 번호로 지우는 방법
등록된 규칙의 번호는 줄 맨앞에 있는 [숫자]
2번 규칙 80/tcp 를 지우려면
새로운 규칙의 추가는 동일한 방식으로 가능하다
포트 뒤에 tcp 나 udp 를 지정할 수 있고 지정하지 않는다면 모두 적용된다
새로운 설정을 적용하려면 disable > enable 해도 좋고 아래와 같이 reload 가 가능하다
특정 IP만 허용할 경우 
특정 IP에게 특정 포트만 허용할 경우
포트의 범위를 규칙으로 사용할 경우
특정 아이피에만 일정 범위의 포트를 tcp 패킷만 허용할 경우
서브넷을 특정 포트에 허용할 경우
이 정도면 내가 써봤던 명령어는 다 정리한 것 같다.
0 2

Rails4, MySQL 4바이트 유니코드
(아이폰 특수문자 등의 Emoji) 지원 설정

MySQL의 utf8 문자셋은 3-Byte UTF-8 Unicode Encoding 을 지원하지.
3 bytes 면 사실 대부분의 글자가 다 표현되거든. 한중일, 중동, Latin 및 특수문자 다 포함해서 말이야.
그런데 원래 UTF-8 은 4 bytes 까지 기록할 수 있어. (그보다 더 옛날 스펙은 6 bytes 까지)
하지만 별로 쓸일도 없고 해서 MySQL 같은 몇몇 소프트웨어는 UTF-8 을 3 bytes 까지만 지원하는겨.
꽤 오랫동안 별 문제없었지만 아이폰의 특수문자 - Emoji 가 4 bytes 유니코드라서 이거 지원 안되는 DB에는 데이터가 제대로 안들어가는 문제가 생긴거지.
아이폰 사용자도 많고 이모지 사용도 꽤 잦기 때문에 - 인스타그램 이딴건 글자보다 이모지가 더 많아! - 이제는 우리도 4 bytes 유니코드를 지원해야 하는거지.
지금 서비스에서 이모지가 저장되는지 아닌지는 다음 문장을 복사해서 저장해보면 알 수 있지.
제대로 저장이 안된다면 이제 설정을 시작해보자.
준비물
MySQL 버전 5.5.3 이상!
차사고와 DB 사고는 항상 일어날 수 있지. 한 백번쯤 백업해놔.
1. database.yml 에서 인코딩 등 수정
2. MySQL 인덱스 길이 수정
3. 데이터베이스 재생성 또는 테이블 수정
이제 긴장 좀 때리자.
3-1 디비를 전부 삭제하고 다시 만들어도 되는 경우
3-2 디비 재성성이 불가능한 경우
1) 데이터베이스 수정
2) 테이블 수정
3) 컬럼 수정
3-3 점검걸고 데이터 백업하고 디비 재성성 후 restore
이거 편하긴하겠지만 무슨일이 생겨도 난 책임 못 진다.
진짜 책임 못 진다. 백업 백번하고 로컬 PC랑 다른 서버에 여기저기 보관해라.
뭔지 잘 모르겠으면 그냥 하지마라.
1) 일단 데이터만 백업
2) 디비 재생성
3) 데이터 리스토어
끝!
1 1

자! 지금 당신은 씬디의 QA!

추석연휴와 2년만에 휴가라는 개인사가 있어서 작업을 적절한 사이즈로 잘라내는데 실패함. 장시간에 걸쳐 작업을 진행하다보니 긴급수정 내용이 수시로 포함되고 개발했던 코드도 시간 지나고 다시 보니 또 수정해야겠고, 수정하고 보니 기존 패턴과 달라서 기존 코드도 부분적으로 리펙토링하고... 이러쿵 저러쿵... 
그래서 이번 업데이트에 내용들이 포함되어 있는지 다 까먹음 ㅇㅇ. 까먹을만큼 자잘한 사이즈긴한데 꽤 중요한 수정들이 있었던게 문제. 그래서 오류가 꽤 있을 수 있으니 이 글을 읽는 당신께서 뭔가 이상한 오류나 버그를 발견하면 갖은 방법으로 이를 알려주기 바람.
애니웨이, 이번 업데이트는 원래 "파일첨부" 였음.
에디터 툴바에 종이클립 모양으로 기능이 추가됐음. 그런데 이거 작업하다보니 에디터에 삽입되는 멀티미디어(사진, 유튜브 영상, 각종 iframe)의 추가적인 콘트롤이 불가피해짐. 특히 씬디에서는 멀티미디어를 수정불가 속성의 figure 태그로 사용하고 있는데 이 때문에 멀티미디어가 위아래로 붙어버리면 그 사이에 라인을 삽입할 수 없거나, 삭제가 어렵고 HTML 레벨에서 깔끔하게 지워지지 않는 등의 문제가 마구마구 발생! 뭐.. 대충 다 때워놨음. 고장난거 있음 알려주기 바람.
그리고 헤더나 인용, 코드 단락의 설정을 단축키로 지정할 수 있도록 했음. 예를 들어 ctrl+h 단축키를 계속해서 누르면 H1, H2, H3, P 순서로 단락 스타일이 변경됨. 단축키는 상단 툴바에 물음표 아이콘으로 확인 할 수 있음. 
아.. 그리고 사진 업로드할 때 orient 정보 있으면 적용되게 수정했고 또 뭐 했더라... 정말 기억안나네... 모르겠다. 끝!
5 3

꽤나 쾌적하지 못한 환경이군요

운영자님 봐주세요.
요원 106 이하 게스트들이 아직도 글인지 광고인지 모를 것을 지속적으로 쓰고 있네요. 단순한 광고가 목적이 아닌 불쾌함을 목적으로 한 글이라면 목적을 초과달성한 것이 아닐까 싶을 정도로 매력적인 글일 것이고, 광고가 목적이었다면 html 태그가 안 통하는 이상 실패입니다만, 아마도 후자라는 생각이 듭니다. 아마 지금까지의 대처는 두가지였을거라 봅니다.
1. IP 블럭. 아마 실패할겁니다. 이 친구들 약삭빠르게 유동 IP를 사용할테니까요.
2. ID 차단. 역시나 위와 같은 이유로 실패할 겁니다.
그러므로 쾌적한 씬디가 되기 위해 아래의 두가지를 제안합니다.
1. ID나 IP가 아닌 키워드를 블럭하는 겁니다. 지금 계속 불법 도박 사이트를 광고하고 있는데, 글을 쓸 때 '바카라, 사다리'를 금칙어로 지정하는 것만으로 글을 복붙하는 것은 막힐 겁니다. 이렇게 몇몇 키워드를 블럭하는 것으로 광고글을 꽤 막을 수 있을 것으로 보입니다.
2. 고소하세요. 스샷은 확보해두었지만 운영자님이 직접 고소하는 것이 맞다고 봅니다. 관련 근거는 아래와 같으니 사이버수사대에서 협조 해 줄 것입니다.
정보통신망 이용촉진 및 정보보호 등에 관한 법률 제50조의7(영리목적의 광고성 정보 게시의 제한) ① 누구든지 인터넷 홈페이지 운영자 또는 관리자가 구체적으로 밝힌 거부의사에 반하여 영리목적의 광고성 정보를 인터넷 홈페이지에 게시하여서는 아니 된다.
② 인터넷 홈페이지 운영자 또는 관리자는 제1항을 위반하여 게시된 영리목적의 광고성 정보를 삭제하는 등의 조치를 할 수 있다.
제76조(과태료) ① 다음 각 호의 어느 하나에 해당하는 자와 제7호부터 제11호까지의 경우에 해당하는 행위를 하도록 한 자에게는 3천만원 이하의 과태료를 부과한다. <개정 2011.3.29, 2012.2.17>
(중략)7. 제50조제1항부터 제3항까지의 규정을 위반하여 영리 목적의 광고성 정보를 전송한 자
8. 제50조제4항 또는 제5항을 위반하여 광고성 정보를 전송할 때 밝혀야 하는 사항을 밝히지 아니하거나 거짓으로 밝힌 자
9. 제50조제7항을 위반하여 비용을 수신자에게 부담하도록 한 자
10. 제50조의5를 위반하여 이용자의 동의를 받지 아니하고 프로그램을 설치한 자
11. 제50조의7제1항을 위반하여 인터넷 홈페이지에 영리목적의 광고성 정보를 게시한 자 (후략)
3 1
Square

씬디 시즌투를 시작한다

시즌1이라는게 없었는데 시즌2를 시작한다니 놀랍군.
어쨋든 시즌2는 다음과 같이 요약됨.
숨겨진 감성이든
누군갈 욕을하든
알게된 지식이든
맛있는 사진이든
자꾸쓰면 잘써진다.
잘쓰려면 자꾸쓰자.
글쓰기는 잔근육빨.
0 0

Rails 모든 연결 SSL 로 변경하기 + Nginx Redirect

Let's encrypt 와 EFF 그리고 여러 스폰서들과 개인기부자들 덕분에 간단하게 SSL 을 적용했으니 이제 모든 http 연결을 ssl 로 돌려보자.
Rails 에서는 Controller 단위에서 force_ssl 을 사용할 수도 있고 보다 와이드하게 전체 설정에서 다룰 수도 있다.
씬디는 https 변경에 다른 별 이슈가 없기때문에 config/environments/production.rb 에 force_ssl 을 설정했다.
이렇게 설정하면 route 룰을 포함해 모두 ssl 연결로 변경된다.
NginX 나 Apache 등을 리버스 프락시로 구성하여 백단에 서버들에게 넘겨준다면 다음의 헤더를 반드시 포함시켜야한다.
Rack 서버는 1) 443 포트로 연결되었는지 2) ENV['HTTPS'] 값이 "on" 인지 3) X-Forwarded-Proto 헤더가 "HTTPS" 인지 3 가지를 보고 판단하기 때문에 리버스 프락시 뒤에 있는 puma 나 unicorn 등은 443 포트가 아닌 다른 포트나 유닉스소켓으로 통신하기 때문에 HTTPS 연결인지 확인하지 못하고 계속 리디렉션 시키게 된다.
NginX 나 Apache 단에서 301 리디렉션으로 연결 프로토콜을 변경할 수도 있겠다.
80 포트를 수신하는 서버 설정을 넣고 해당 설정에서는 http 를 https 로 변경하여 리디렉션시키면 443 을 리스닝하고 있는 아래의 설정이 요청을 수신하게 된다. 
끝.