The new comment spam :(

The past couple of weeks my blog is being annoyed by different comment spams, the content of the comment seems perfectly relevant, often even correctly tackling the topic, or sometimes even almost insightful follow up questions.

However the link to the author site is totally bogus.

If talking about drupal and high availability , a question on GFS or OCFS2 is obviously on topic. However I don't want my blog to link to lot of irrelevant sites.

On the other hand I can't tell Mollom the content of the article is crap. I do want to tell Mollom the "author" of the comment is crap. I even might want to have the comment visible but not link back to the author.

Anyone got good ideas on that ?

Comments

Remote DBA's picture

#1 Remote DBA : Captcha

I suggest that you turn on captcha on comments. Otherwise any automated spam system may blow you site up.


Kris Buytaert's picture

#2 Kris Buytaert : Mollom

It will have to blow up Mollom first


Mr. Angry 's picture

#3 Mr. Angry : Your only solution would be

Your only solution would be switch you site to no follow.

But I don't really think that your ranknig will be that badly affected by sites you're linked out to, as long as they're not straight up spam sites.


Anonymous's picture

#4 Anonymous : same

i had same problem
it was related do the dofollow
some programs looks for site that have dofollow active to post comment for increasing pagerank


Erin Lewis's picture

#5 Erin Lewis : Personally I've had to combat

Personally I've had to combat the same situation. I'm not sure what it's worth to you but I tested this on two blogs that I have. On the first I left the comments as DoFollow and on the other I made them NoFollow. One the site which I left untouched (DoFollow) I continually had active commenters (and spammers) although on the one I changed to NoFollow I lost nearly 65% of my traffic/comments/and revenue. Something to keep in mind when deciding to change the 'value' of the link.


michael's picture

#6 michael : It's always something like

It's always something like "good post, I agree" or "no I disagree" and some other generic sentence. i think it is ok


Roel De Meester's picture

#7 Roel De Meester : Remove Homepage in comment form + remove homepage linking

Just add the following to you template.php (for drupal 5) to remove the homepage field in the comment form

  1. function phptemplate_comment_form($form) {
  2. $form['homepage'] = null;
  3. return drupal_render($form);
  4. }

I even went one step further by not displaying the link in the username anymore.

  1. function <YourThemeName>_username($object) {
  2. if ($object->uid && $object->name) {
  3. // Shorten the name when it is too long or it will break many tables.
  4. if (drupal_strlen($object->name) > 20) {
  5. $name = drupal_substr($object->name, 0, 15) .'...';
  6. }
  7. else {
  8. $name = $object->name;
  9. }
  10.  
  11. if (user_access('access user profiles')) {
  12. $output = l($name, 'user/'. $object->uid, array('attributes' => array('title' => t('View user profile.'))));
  13. }
  14. else {
  15. $output = check_plain($name);
  16. }
  17. }
  18. else if ($object->name) {
  19. $output = check_plain($object->name) . ' ('. t('not verified') .')';
  20. }
  21. else {
  22. $output = variable_get('anonymous', t('Anonymous'));
  23. }
  24.  
  25. return $output;
  26. }


Roel De Meester's picture

#8 Roel De Meester : Remove Homepage in comment form + remove homepage linking

Just add the following to you template.php (for drupal 5) to remove the homepage field in the comment form

  1. function phptemplate_comment_form($form) {
  2. $form['homepage'] = null;
  3. return drupal_render($form);
  4. }

I even went one step further by not displaying the link in the username anymore.

  1. function <YourThemeName>_username($object) {
  2. if ($object->uid && $object->name) {
  3. // Shorten the name when it is too long or it will break many tables.
  4. if (drupal_strlen($object->name) > 20) {
  5. $name = drupal_substr($object->name, 0, 15) .'...';
  6. }
  7. else {
  8. $name = $object->name;
  9. }
  10.  
  11. if (user_access('access user profiles')) {
  12. $output = l($name, 'user/'. $object->uid, array('attributes' => array('title' => t('View user profile.'))));
  13. }
  14. else {
  15. $output = check_plain($name);
  16. }
  17. }
  18. else if ($object->name) {
  19. $output = check_plain($object->name) . ' ('. t('not verified') .')';
  20. }
  21. else {
  22. $output = variable_get('anonymous', t('Anonymous'));
  23. }
  24.  
  25. return $output;
  26. }


Marko's picture

#9 Marko : "I've been seeing that same

"I've been seeing that same thing for a few months now, not many, but maybe a few a week."

Yep, me too.


Gavin's picture

#10 Gavin : Comment Spam

Place some code to query the posters URL (AJAX or HTTPXML). Even look at the HTML for similar keywords?

Gavin.
IT Support


Software Reviews's picture

#11 Software Reviews : Tired of comment spamming

Comment spamming is really annoying. Some times I have to close the comment posting to prevent this. A spam protection is need. A verification or something.


Arnab's picture

#12 Arnab : I've suffered from this

I've suffered from this problem too. I've noticed that the IPs are consistent; it seems there is some human spending inordinate amounts of time trolling blogs posting relevant things, correctly typing in captchas, etc.

One idea is to modify the drupal template such that there is a small piece of "spammer signature" after each comment. This signature contains a hash of the poster's IP, and a hash of the URL, each hash prepended by a special keyword. (This can be hidden using CSS if needed). So the signature will look like AUTHOR_IP_HASH_XXXXXXXXXXX AUTHOR_WEBSITE_HASH (where xxxxx... are the hashes).

Assuming Mollom uses content based spam detection, these special keywords will make it easy for them to identify the spamming authors.


Anonymous's picture

#13 Anonymous : rel=nofollow?

Maybe add a rel=nofollow on comment links? Or did you want to do this selectively?


Ian Ward's picture

#14 Ian Ward : Captcha economy

Have you seen http://blogs.zdnet.com/security/?p=1835 ? Even if it's on-topic, but with a touting link or touting something, I think "Report as spam or unsolicited advertising" is the right way to mark it.

Ian


Nicholas Thompson's picture

#15 Nicholas Thompson : No Follow?

You could simply No Follow... That way none of your 'SEO Juice' is wasted on those spammy sites.

Alternatively, form alter the comment form & re-theme the comment template to not allow author sites?

You could take that one step further and not allow author sites for anon but enable OpenID/registration for regular commenters?

Also - if the content IS relevant and no "BUY V1aGrA HEREZ!!!" then a crappy author site isn't really a huge issue is it?!


Ryan's picture

#16 Ryan : No bright ideas from me... I

No bright ideas from me... I generally just go in and remove the links, leave the comments. It still feels a little like "cheating" to keep the comments from folks named "drupal" that were just there to link to their "awesomedrupalsite.com". :P I'll worry about the ethics later...


PJ's picture

#17 PJ : Lots of sites make author

Lots of sites make author links all go via a redirector on the site itself, so they have zero googlejuice and so are less attractive for comment spammers.


Mark's picture

#18 Mark : nofollow?

Just use a rel=nofollow ?

Or remove the bogus link manually after the comment has been left.


Island Usurper's picture

#19 Island Usurper : Stop encouraging it

I would just put rel="nofollow" in the comment template and be done with it. Since you're allowing people to fill in the Homepage field, I don't think you really have the authority to say "that's not really your homepage".

If it were me, I'd get rid of that field altogether. The way it is, it seems like the reward for a relevant post is a link to the Homepage, whatever it happens to be. Take away that reward, and the only incentive left is just making a relevant comment.


Matt Farina's picture

#20 Matt Farina : nofollow

Starting in drupal 6 there was a change to the way links from the homepage field on the comment form were handled. They had rel="nofollow" attached to them so they wouldn't help out in search engine ranking. If you want to add this to a drupal 5 site you can grab the theme_username function from drupal 6 and insert it into your drupal site as phptemplate_username or themename_username and the feature will be added.

Also, the html filter in drupal has a selection on a filters configuration screen for "Spam link deterrent". This adds the rel="nofollow" to links input for that input format.

This problem is a pain. It's real people inputting real comments that contain link spam. Personally, I just try not to reward them.


Ploum's picture

#21 Ploum : My little solution

So far, and for now more than 2 years, I stopped all of them with http://ploum.frimouvy.org/?150-the-invisible-captcha-mechanism-icm-again...

1. Check that the comment is not an already existing comment on this post or is not a mashup of comments on this post. Also, they often take comments from a blog post that link to your post and post them in your post.

2. Some spam are sent by human beings. I suspect that they are sending spam comment with a software that analyse their action so it can do the same later automatically. Against those human spam, there's nothing to do but it's really not that relevant. (at worst, it's one or two spam a week)

(f*** captcha. It's the third one I have to try to post on your blog)


Blake's picture

#22 Blake : Ditto

I've been seeing that same thing for a few months now, not many, but maybe a few a week. It's always something like "good post, I agree" or "no I disagree" and some other generic sentence. It's short, and more or less on topic, but it's always the Name and Homepage that are the spam. It's clearly being done by people, not bots.


yaph's picture

#23 yaph : Instead of using the author

Instead of using the author name the commentator enters as anchor text for the link to the comment author's site, you can use something generic such as "author's site" as anchor text. You can achieve this by overriding the theme_username() function (http://api.drupal.org/api/function/theme_username/6) in your theme.

This could discourage commentators of using keywords in the author name field which happens often, because it won't have the desired effect.

This does not help if links within the comment text are your main problem. The Nofollow List module http://drupal.org/project/nofollowlist) may be an option. I haven't used it myself, but can well imagine that there is quite some effort maintaining the blacklist. Maybe a whitelist approach would be more appropriate.


Anonymous's picture

#24 Anonymous : Filter out links

The most obvious solution is to stop allowing people to post links in comments...sucks though :(


Software Reviews's picture

#25 Software Reviews : Nice solution

It is the best way. But u may loose some good commentors.