Fantasy by xkcd
Currently I'm testing the DNSBL Antispam plugin. The plugin uses one or more lists to block bots. The test is to see what lists are suitable for this job.
DNS Blacklists are as old as spam I suppose. Well known is the ORDB Open Relay Database. These are used to filter spam emails. The DNS of the sender is checked and the mail is usually tagged as spam before it's passed to the recipient.
These lists are used to trap bots on this blog. I was asked by Spuyt 12 of Geen Commentaar who's site is often blocked in a DDos style attack.
So I'm using the plugin by blueyed and try some lists and combination of lists. If the plugin thinks you're a skiddie you're presented with a Captcha and you can enter or leave. Happened even to me
If you validate the Captcha test you are whitelisted. The trick is finding the right (combination of) list(s) that block only few 'real' visitors.
Currently I have these three lists active:
- list.dsbl.org
- sbl-xbl.spamhaus.org
- relays.ordb.org
and I'm not happy since it doesn't pass enough visitors:
Blocked requests: 67 (11%)
Whitelisted requests: 531 (89%)
Not blocked requests: 0 (0%)
The whitelisted people are probably blocked in the past. Please leave a reply to this post if you are a victim.
Before you jump into this fun, there is a show stopping bug in the plugin. Change lines 603-605 into:
global $Plugins, $inc_path, $io_charset;
require_once $inc_path . '_core/ui/forms/_form.class.php';
Furthermore the default lists in the Plugin settings are concatenated wrong: list.dsbl.org\nsbl-xbl.spamhaus.org. Make that list.dsbl.org sbl-xbl.spamhaus.org with a space in between in stead of \n. If you are there don't forget to turn on Statistics (see Tools -> DNSBL).
Some lists to check:
- relays.ordb.org
- list.dsbl.org
- dnsbl.njabl.org
- sbl-xbl.spamhouse.org
- bl.spamcop.net
- sbx.spamcracker.org
Please accept my apologies for having to do the Captcha once in a while. It's for a good cause.
Bye for now
== UPDATE ==
I found a more comprehensive list at Openrbl DNSBL RBL Blacklist Lookup that also checks an IP against all lists. I'm red (blacklisted) on three but also whitelisted on two. I think the lists(s) I'm looking for will be there. I'm still posting results in the comments. Those are by no means statitically proven data, but if there are zero blacklists or zero positive passes I think the list is useless and that's the point where I break the test.
Some time ago I replaced the Meebo that I had in a FreeHTML widget by a plugin/widget that I wrote and that the chat in the sidebar.
The Meebo werked nice. I have a personal page and that contacts the widget in the blog. That way I can talk to visitors. The visitors type in the Meebo box on the blog and I reply in the personal page.
But it was on the Testlab page and didn't get used. So I no longer opened my Personal page. Finally I got fed up cause the widget took ages to load. Not nice when the Testlab was frequently refreshed during testing.
So I wrote my widget and nobody ever used it and I was happy. Until there was a question in the forums by fdeconiac:
I posted last year an idea of development about a chat, which would permit to members connected on the blogs to chat whith other members connected...
Did you see the new toolbar (at the bottom of the page) on facebook? We can now chat with our friends connected on facebook!
If someone would be interested and capable of developping a plugin (maybe that we can add in the toolbar which appears when we are connected) like that, let me know because i am very interested in a such plugin!!!!!
Did you see the new toolbar with the chat on facebook?
And suddenly I was interesting in the thing. Because imagine I have a few friends and we set up a chat together. One blog acts as host and the others join. Each blog has the identical messages. I post on my blog and you on yours and we all see the same stuff.
I thought this was easy. But discussing the project with Yabba revealed the first problem: I forgot that Ajax is not cross-domain.But Yabba wouldn't have been Yabba if he hadn't something on the shelves. He did a cross domain Ajax that's not Ajax. See AJAX without the Ax. Brilliant. Especially his sources:
Variations of this idea have been around for years, in days of old you used to use javascript to make one-way calls via images, even postbacks via hidden iframes isn't "original" .... but I wouldn't say no to a big cash prize
That's Yabba the way he's thinking: investigating script kiddies until he's one of them.
That should eventually solve one problem. There are many more. Security issues are eminent. I had a large chunk of code ready but the script didn't work anymore and this is hell debugging. And I don't believe I'm particularly concentrated today. Call it an off day. So I'm back at zero with a lot of ideas to work out.
Expect something in the next weeks. I have a feeling this the magnitude of this thing is huge. And I had it laying around not even intending to publish ...
Please do try the chat thing in the sidebar. It may be down at times. If I remember I'll put up a notice when I'm debugging.
Have fun as usual
Request from the forums by sharky:
Hello guys.
Forgive me if this has been covered I looked on the forums but could not find anything.
I am looking to put the Comment List Widget in one of my sidebars and have it list the last 5 or so comments. But! I want to exclude comments by the blog post author. This is because I reply to many comments and don't want my own name on the Comment List 5 or 6 times in a row.
Thanks in advance.
Comment List Widget Modifications.
I had a long struggle with the file /inc/widgets/widgets/_coll_comment_list.widget.php. I found this solution:
while( $Comment = & $CommentList->get_next() )
{ // Loop through comments:
// pre_dump($Comment);
// pre_dump($Comment->author_user_ID);
if ( @$Comment->author_user_ID != '1' )
{
// Load comment's Item object:
$Comment->get_Item();
echo $this->disp_params[ 'item_start' ];
$Comment->author( '', ' ', '', ' ', 'htmlbody', $this->disp_params[ 'author_links' ] );
echo T_( 'on ' );
$Comment->permanent_link( array(
'text' => $Comment->Item->title,
'title' => $this->disp_params[ 'hover_text' ],
) );
echo $this->disp_params[ 'item_end' ];
}
} // End of comment loop.}
I only added the if statement.
The widget in the sidebar is the result. All comments by admin (me) are left out. The one that's there is made when not logged in.
Of course I tried the right way: find the item (post) where the comment belongs to, determine it's author and check if the author of the comment is the same.
I couldn't even get the item. I probably need to make a blogcache and filter the item ID (can be found in $Comment). But the $Comment is sloppy on it's author. Lots of methods are not set if the comment is from a visitor.
So after some unsuccessful struggle I decided to go for the easy hack. I found author_user_ID to be fairly consistent. And sharky can find his number. Then I got nasty notices. If the comment is from a visitor author_user_ID is not set. Since it's not an array but an object I haven't got a clue to check for the existence of author_user_ID without getting the notice, so there also I took the shortcut. The @ disables notices for this statement.
So the hack is a one liner after all. Yabba should be proud of me. But not of this code I presume.
Currently I'm testing my Sorted Public Bloglist v0.8 that is able to
More information in [2.4.0] [Widget] Sorted Bloglist widget nd in the Plugin blog on this site (not updated yet).
I was bored when I wrote 0.8. For the free link you need to enter an URL and a label. If you forget the label the plugin will make one. Some of you may not like that. 
// You'd better make sure there are enough labels ;)
$spam = array( 'Porn', 'Penis', 'Viagra' );
$j = 0;
$k = 0;
while ( $j < count( $array_extra_links_url ) )
{
if ( ! array_key_exists( $j, $array_extra_links_label ) )
{
$array_extra_links_label[ $j ] = $spam[ $k ];
if ( $k == 2 )
{ // Enough fun for now
$array_extra_links_url = array_slice( $array_extra_links_url, 0, 3 );
}
$k++;
}
$j++;
}