annotate README.txt @ 8:59245309f054 default tip

conform to modern version of lxmlmiddleware
author k0s <k0scist@gmail.com>
date Fri, 26 Feb 2010 15:40:56 -0500
parents 8d826c3fbb06
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
7
8d826c3fbb06 renames in the README
k0s <k0scist@gmail.com>
parents: 6
diff changeset
1 CAPTCHA Middleware
8d826c3fbb06 renames in the README
k0s <k0scist@gmail.com>
parents: 6
diff changeset
2 ==================
5
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
3
7
8d826c3fbb06 renames in the README
k0s <k0scist@gmail.com>
parents: 6
diff changeset
4 CAPTCHAmiddleware is a WSGI middleware python packages for putting
5
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
5 CAPTCHAs on forms for unauthorized users (those that haven't logged in
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
6 yet). If you aren't authorized -- in python terms, if remote_user is
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
7 not set on the request -- then CAPTCHAs and a hidden key will be added
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
8 to forms with ``method=POST``. You will be required to correctly
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
9 solve the CAPTCHA in order to submit the POST request. Otherwise, the
7
8d826c3fbb06 renames in the README
k0s <k0scist@gmail.com>
parents: 6
diff changeset
10 CAPTCHAmiddleware will stop your request and redirect you back to
5
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
11 the form.
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
12
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
13
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
14 What are CAPTCHAs? -or- I hate those things
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
15 --------------------------------------------
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
16
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
17 CAPTCHAs are admittedly imperfect ways of telling humans and computers
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
18 apart. Presumedly if you are already identified (logged in), then the
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
19 computer is satisfied that you are you. But what if you want to make
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
20 an anonymous comment on someone's blog post? In a perfect world,
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
21 there would be no CAPTCHAs. In the real world, there is SPAM. So if
6c6766109dac adding README.txt and use it in setup.py long_description
k0s <k0scist@gmail.com>
parents:
diff changeset
22 I want to protect my blog from SPAM-bots, I need to do something.
6
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
23 Again, CAPTCHAs aren't perfect, but they're at least something.
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
24
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
25
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
26 Why SkimpyGimpy?
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
27 ----------------
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
28
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
29 I used SkimpyGimpy because it is free, open souce, and has an easy to
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
30 use API. People complain that the CAPTCHAs are hard to read. I'm
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
31 sorry about that. If you really want to help, I'm sure the
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
32 SkimpyGimpy developers would be more than glad for a hand.
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
33
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
34
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
35 Why not reCAPTCHA?
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
36 ------------------
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
37
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
38 reCAPTCHA is annoying because it uses an API key and is not open
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
39 source. I have no idea why either of those things are true. If
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
40 someone wanted to help include reCAPTCHA support in this package, I'd be happy
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
41 to help. But because my opposition to closed source software (yes,
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
42 even if they are web services) and API keys, its not a priority for
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
43 me.
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
44
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
45
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
46 Why do this with middleware instead of in an app?
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
47 -------------------------------------------------
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
48
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
49 This is a long debate and the subject of many blog posts. In short, both
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
50 approaches are valid. If you want to integrated with application
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
51 logic, you shouldn't use middleware for something like this. If you
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
52 just want this functionality and don't care about tight integration,
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
53 then this approach might work for you.
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
54
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
55
7
8d826c3fbb06 renames in the README
k0s <k0scist@gmail.com>
parents: 6
diff changeset
56 Why does CAPTCHAmiddleware look half done?
6
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
57 ----------------------------------------------
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
58
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
59 Because it is. This is very much a work in progress. Its target
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
60 audience is clearly developers who want to get their hands dirty. So,
015875d43b91 update README
k0s <k0scist@gmail.com>
parents: 5
diff changeset
61 as per the usual disclaimer, sorry for the mess, am working on it.