103 lines
2.9 KiB
Org Mode
103 lines
2.9 KiB
Org Mode
|
:PROPERTIES:
|
||
|
:ID: b6402aa6-3315-4317-82a5-367af38f0ead
|
||
|
:END:
|
||
|
#+TITLE: High IQ captcha
|
||
|
#+Author: Yann Esposito
|
||
|
#+Date: [2022-02-21]
|
||
|
- tags ::
|
||
|
- source :: https://news.ycombinator.com/item?id=30414374
|
||
|
|
||
|
I just recently read into HN a new notion.
|
||
|
High IQ Captcha. Captcha designated to prevent low IQ people to access
|
||
|
some resources, but are easy to get from higher level IQ.
|
||
|
|
||
|
We could extend this notion to use community filtering captchas.
|
||
|
And I think this looks like a great idea.
|
||
|
It will not make it impossible to retrieve some resources, but the price
|
||
|
to pay will be different depending on your community.
|
||
|
For some, it will be almost impossible to reach.
|
||
|
|
||
|
Maybe it could be the great system to prevent eternal September in social
|
||
|
networks.
|
||
|
|
||
|
Another interesting idea will be to hide a few gems into my articles behind
|
||
|
such kind of system.
|
||
|
|
||
|
Like having a small encrypted text which would only be revealed if the
|
||
|
reader want to put the extra effort in finding the result.
|
||
|
|
||
|
Let's try to find a few different exercises for the reader.
|
||
|
|
||
|
** Visible only via the HTML source:
|
||
|
|
||
|
#+begin_src html
|
||
|
<div style="display:none>
|
||
|
The hidden text is here.
|
||
|
I expect it not to be difficult to find.
|
||
|
</div>
|
||
|
#+end_src
|
||
|
|
||
|
And perhaps we could generate a specific `css` with only the good answer:
|
||
|
|
||
|
#+begin_src html
|
||
|
<html>
|
||
|
<head>
|
||
|
<style>
|
||
|
#hidden {
|
||
|
display: none;
|
||
|
border: solid 3px;
|
||
|
text-align: center;
|
||
|
font-size: large;
|
||
|
padding: 2em;
|
||
|
}
|
||
|
p + .r1t:checked + .r1f
|
||
|
+ p + .r2t:checked + .r2f
|
||
|
+ p + .r3t:checked + .r3f
|
||
|
+ div#hidden
|
||
|
, p + .r1t + .r1f:checked
|
||
|
+ p + .r2t + .r2f:checked
|
||
|
+ p + .r3t + .r3f:checked
|
||
|
+ div#hidden
|
||
|
{
|
||
|
display: block;
|
||
|
}
|
||
|
</style>
|
||
|
</head>
|
||
|
<body>
|
||
|
<form>
|
||
|
<p> What is ... your name? </p>
|
||
|
<input type="radio" name="response1" class="r1t">Galaad</inpu>
|
||
|
<input type="radio" name="response1" class="r1f">Arthur</input>
|
||
|
<p> What is ... your quest? </p>
|
||
|
<input type="radio" name="response2" class="r2t">to seek the holy grail!</inpu>
|
||
|
<input type="radio" name="response2" class="r2f">to seek the holy grail!</input>
|
||
|
<p> What is ... your favorite color? </p>
|
||
|
<input type="radio" name="response3" class="r3t">red</inpu>
|
||
|
<input type="radio" name="response3" class="r3f">blue</input>
|
||
|
<div id="hidden">
|
||
|
This is the CSS hidden message and it works.
|
||
|
</div>
|
||
|
</form>
|
||
|
</body>
|
||
|
</html>
|
||
|
|
||
|
|
||
|
#+end_src
|
||
|
|
||
|
Then ask users to use the inspector to retrieve the data.
|
||
|
|
||
|
Then potentially, hide the data into some comment, or extra meta difficult
|
||
|
to retrieve and ask them to look at the HTML source.
|
||
|
|
||
|
** Encrypted
|
||
|
|
||
|
A better idea is to use random long bits of data, with XOR.
|
||
|
And answering all good answers will provide the correct XOR key.
|
||
|
Can we make that with a static website without js?
|
||
|
Hmm.... I don't think so ;)
|
||
|
|
||
|
Secret being: ~MAIN_URL/secret~ with secret being the letters/numbers of the answers.
|
||
|
I think we could do that with a ~form~ with some sort of backend dynamic program.
|
||
|
|
||
|
Anyway it was a fun though experiement.
|