Path: csiph.com!v102.xanadu-bbs.net!xanadu-bbs.net!news.mixmin.net!feeds.phibee-telecom.net!newsfeed.xs4all.nl!newsfeed2.news.xs4all.nl!xs4all!newsgate.cistron.nl!newsgate.news.xs4all.nl!post.news.xs4all.nl!not-for-mail Return-Path: X-Original-To: python-list@python.org Delivered-To: python-list@mail.python.org X-Spam-Status: OK 0.052 X-Spam-Evidence: '*H*': 0.90; '*S*': 0.00; 'dynamically': 0.07; '"my': 0.09; "'.'": 0.09; 'escape': 0.09; 'subject:skip:c 10': 0.09; 'suggestions.': 0.09; 'url:blog': 0.10; 'cc:addr:python-list': 0.11; 'django': 0.11; 'wrote': 0.14; 'article:': 0.16; 'bit.': 0.16; 'chris,': 0.16; 'doing,': 0.16; 'dot,': 0.16; 'insights': 0.16; 'stuff,': 0.16; 'uncased': 0.16; 'uppercase': 0.16; 'whacked': 0.16; 'written.': 0.16; 'wrote:': 0.18; 'bit': 0.19; 'pieces': 0.19; 'email addr:gmail.com>': 0.22; 'cc:addr:python.org': 0.22; 'cc:2**0': 0.24; 'script': 0.25; '>': 0.26; 'certain': 0.27; 'header:In-Reply-To:1': 0.27; 'point': 0.28; 'specifically': 0.29; 'chris': 0.29; 'characters': 0.30; 'matching': 0.30; 'message-id:@mail.gmail.com': 0.30; "i'm": 0.30; 'url:mailman': 0.30; '(which': 0.31; 'gives': 0.31; 'code': 0.31; 'getting': 0.31; 'lines': 0.31; 'exclude': 0.31; 'sep': 0.31; "skip:' 40": 0.31; "they'll": 0.31; 'quite': 0.32; 'url:python': 0.33; 'everyone': 0.33; 'running': 0.33; 'fri,': 0.33; 'but': 0.35; 'received:google.com': 0.35; 'add': 0.35; 'there': 0.35; 'really': 0.36; 'false': 0.36; 'url:listinfo': 0.36; 'next': 0.36; "didn't": 0.36; 'thanks': 0.36; "i'll": 0.36; 'url:org': 0.36; 'so,': 0.37; 'too': 0.37; 'skip:& 10': 0.38; 'displays': 0.38; 'gmail': 0.38; 'lists.': 0.38; 'pm,': 0.38; 'track': 0.38; 'anything': 0.39; 'skip:& 20': 0.39; 'does': 0.39; 'url:2012': 0.39; 'address.': 0.39; 'url:mail': 0.40; 'experts': 0.60; 'manually': 0.60; 'lower': 0.61; 'lost': 0.61; 'numbers': 0.61; "you're": 0.61; 'first': 0.61; 'name': 0.63; 'kind': 0.63; 'great': 0.65; 'linked': 0.65; 'to:addr:gmail.com': 0.65; 'media': 0.66; 'here': 0.66; '20,': 0.68; 'frank': 0.68; 'social': 0.69; 'labor': 0.74; 'upper': 0.74; 'address,': 0.75; 'you:': 0.81; 'ashamed': 0.84; 'battle.': 0.84; 'characters,': 0.84; 'extent.': 0.84; 'viable': 0.84; 'joel': 0.91; '2013': 0.98 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:date:message-id:subject:from:to :cc:content-type; bh=yKwocKfmXkX3z4tELtENj9LKNWI+abgqqXv3sHCXDT4=; b=ELCnl1XuC5X2D3Z0+GjG2BUmZURZpZxH36OXV6c9O0MuOFE9VFz6lR6rQmFgHNokBR 2oXIaBTw1lt1lAzJXnkuBdqE1ppBevpijS7I8U7cdnE9CihVv5AZ1Wg8rYqXOPWAtXND aMilh8yhkz1dw6qGAphXnfL24JJl6ThtmCT8GvgbX6A3MOmeG4r3IFiQTNCZt7tIj18c ob2K1dVZ36gC38eBlePGt/QnfzWTtYq92FFoc1fLfNV5EM1irBIzdDzDF1ehIw7t1V1e yzPhu6NQkhdXXbsfaRaKcxsIIUa0XNKJykxHzwov5To6aIs4SUqsYn90j2x2zu4Zabia tzQQ== MIME-Version: 1.0 X-Received: by 10.221.40.10 with SMTP id to10mr2583513vcb.22.1379703770517; Fri, 20 Sep 2013 12:02:50 -0700 (PDT) In-Reply-To: <523C7BA6.20902@gmail.com> References: <523C6402.7090501@gmail.com> <523C7BA6.20902@gmail.com> Date: Fri, 20 Sep 2013 15:02:50 -0400 Subject: Re: Antispam measures circumventing From: Joel Goldstick To: Jugurtha Hadjar Content-Type: multipart/alternative; boundary=001a1133757623192104e6d551a5 Cc: "python-list@python.org" X-BeenThere: python-list@python.org X-Mailman-Version: 2.1.15 Precedence: list List-Id: General discussion list for the Python programming language List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Newsgroups: comp.lang.python Message-ID: Lines: 184 NNTP-Posting-Host: 2001:888:2000:d::a6 X-Trace: 1379703779 news.xs4all.nl 16005 [2001:888:2000:d::a6]:36526 X-Complaints-To: abuse@xs4all.nl Xref: csiph.com comp.lang.python:54505 --001a1133757623192104e6d551a5 Content-Type: text/plain; charset=UTF-8 On Fri, Sep 20, 2013 at 12:45 PM, Jugurtha Hadjar wrote: > Chris, Vlastimil, great insights gentlemen! Thanks > > > Chris Angelico wrote: > > >Instead of matching the ones that are the same as their uppercase > >version, why not instead keep the ones that are the same as their > >lowercase? > > > That's why I started off doing, and then lost track a bit. It didn't cross > my mind that '.' and '@' are uncased characters and I'm a bit ashamed of > not thinking about that before running the code > > (i.e: > > '.'.lower() gives False > '.'.upper() gives False > > And the same for '@'. So unless you specifically "spare" them, they'll be > whacked if you exclude upper case characters, or only include lower case > characters). > > > >Ah, now you're getting into the realm of CAPTCHAs. I'll be quite frank > >with you: Don't bother. Many MANY experts are already looking into it > > Yeah.. I thought of writing "My e-mail is my first name, dot, my last name > at gmail dot com". > > Some "riddling" can be viable to a certain extent. Or if your e-mail is > ba86rockstar@gm.bu > > ba, then 86, then rock, then star, at gm dot bu. > > Or the e-mail can be generated dynamically calling a script that assembles > pieces and displays it. This way, it can escape scrapers and all and will > make it hard to manually harvest e-mails.. Which brings us to your next > point about e-mail harvesters and that kind of labor (which is astounding > !). > > > > > > > email = 'REMOVEMEjohn.doSPAMeSPAM@**REMOVEMEhotmail.com' > > ''.join(filter(lambda x: x==x.lower(),email)) > >'john.doe@hotmail.com' > > Nice ! As well as Vlastimil's suggestions. The things I found on the net > weren't that well written. There were *way* too many lines that made me > think "No way. There's gotta be a better way". > > > > > > > > -- > ~Jugurtha Hadjar, > -- > https://mail.python.org/**mailman/listinfo/python-list > Last year I was playing around with django forms and wrote some code that required the user to add some numbers before the form was submitted. Here is the article: http://www.joelgoldstick.com/blog/2012/sep/30/django-forms/ This isn't exactly what you are asking, but it does give you a change to let someone send you mail without giving out your email address. With the onslaught of social media stuff, it feels like sites like linked in and anything that uses gmail want to get you to give away your email address, and perhaps give access to everyone in your lists. So, I'm suggesting its really a loosing battle. -- Joel Goldstick http://joelgoldstick.com --001a1133757623192104e6d551a5 Content-Type: text/html; charset=UTF-8 Content-Transfer-Encoding: quoted-printable



On Fri, Sep 20, 2013 at 12:45 PM, Jugurtha Hadjar <jugurth= a.hadjar@gmail.com> wrote:
Chris, Vlastimil, great i= nsights gentlemen! Thanks


Chris Angelico wrote:

>Instead of matching the ones that are the same as their uppercase
>version, why not instead keep the ones that are the same as their
>lowercase?


That's why I started off doing, and then lost track a bit. It didn'= t cross my mind that '.' and '@' are uncased characters and= I'm a bit ashamed of not thinking about that before running the code
(i.e:

'.'.lower() gives False
'.'.upper() gives False

And the same for '@'. So unless you specifically "spare" = them, they'll be whacked if you exclude upper case characters, or only = include lower case characters).


>Ah, now you're getting into the realm of CAPTCHAs. I'll be quit= e frank
>with you: Don't bother. Many MANY experts are already looking into = it

Yeah.. I thought of writing "My e-mail is my first name, dot, my last = name at gmail dot com".

Some "riddling" can be viable to a certain extent. Or if your e-m= ail is ba86rockstar@gm.bu

ba, then 86, then rock, then star, at gm dot bu.

Or the e-mail can be generated dynamically calling a script that assembles = pieces and displays it. This way, it can escape scrapers and all and will m= ake it hard to manually harvest e-mails.. Which brings us to your next poin= t about e-mail harvesters and that kind of labor (which is astounding !).




> email =3D 'REMOVEMEjohn.doSPAMeSPAM@REMOVEMEhotmail.com'= ;
> ''.join(filter(lambda x: x=3D=3Dx.lower(),email))
>'john.doe= @hotmail.com'

Nice ! As well as Vlastimil's suggestions. The things I found on the ne= t weren't that well written. There were *way* too many lines that made = me think "No way. There's gotta be a better way".

Last ye= ar I was playing around with django forms and wrote some code that required= the user to add some numbers before the form was submitted. Here is the ar= ticle: http://www.joelgoldstick.com/blog/2012/sep/30/django-forms/

This isn't exactly what you are as= king, but it does give you a change to let someone send you mail without gi= ving out your email address.=C2=A0

With the onslaught of social media stuff, it feels like sites like linked = in and anything that uses gmail want to get you to give away your email add= ress, and perhaps give access to everyone in your lists. So, I'm sugges= ting its really a loosing battle.

--
--001a1133757623192104e6d551a5--