블로그에 악성 스팸 코멘트를 다는 것을 CaptCha라는 방식을 써서 일단 잠잠해졌다.
근데 친구들과 같이 쓰는 게시판의 특정글에 계속 스팸 코멘트가 달리길래
이번에는 썬업♬님의 체크박스를 하나 더 두는 방안 을 적수보드에 적용했다.
(적수보드용 스팸방지 체크박스 패치)
목표: 유닉스 계열 쉘 스크립트나 명령줄에서 쓸 용도로, 표준 입력의 %B1%A4 같은 것들을 디코딩해서 표준 출력으로 보내려고 한다. 짧아서 alias에 바로 갖다 쓸 수 있으면 더욱 더 좋고, 웬만한 유닉스에서 다 돌아 가는 portable한 방법이라면 더할 나위 없다.
선택 1
언제나 그렇듯이 바로 생각할 수 있는 대안은 펄이다. 펄이 없는 유닉스 환경은 생각하기 힘들기 때문에 보통은 이걸로 충분할 것이다.
이 방법의 가장 큰 문제는 echo -e는 bash에만 있다는 것이다. 뭐, 나처럼 bash만 쓰는 사람은 별 상관 없다 -_-;
선택 3
Burnhard 님에 따르면 urldecode를 한 방에 할 수 있는 다음과 같은 명령이 있다고 한다.
unvis -h
반대로 urlencode는 vis -h로 된다. 그러나 안타깝게도 vis/unvis(1)은 BSD 계열에만 있으며, 그나마 -h 옵션은 NetBSD 3.0 이상에만 존재하는 것으로 보인다. OTL
선택 4
이런 삽질에 awk(1)가 빠지면 재미가 없을 것이다. -_-; 만약 가장 작은 코드를 추구한다거나 하는 ㅂㅌ짓을 하고 싶지 않다면, awk를 사용하는 urldecode(by Heiner Steven) 프로그램도 나쁘진 않을 듯 하다. 내가 보기에는 적어도 awk 프로그램은 호환성 있는 걸로 보이는데, 긴 텍스트의 경우 에러가 발생할 수도 있다 하니 주의가 필요하다.
"대화엔 두 가지가 있다. 이해하기 위한 대화와 이기기 위한 대화. 이해하기 위한 대화는 아무리 고단한 과정을 거치더라도 반드시 행복한 결과에 이르게 된다. 그것을 믿는 건 우리가 인간임을 믿는 것과 다르지 않다. 그러나 이기기 위한 대화는 어떤 경우에도 결코 아무 것도 얻을 수 없다. 문제는 모든 이기기 위한 대화가 이해하기 위한 대화라 주장되며, 그걸 밝혀낼 방법이 딱히 없다는 것이다."