Посетители на сайте anarc.at

Что: d0f03297a63566332bd9a840b8268c0910715c75

Когда: 2022-01-29 11:52:23+03:00

Темы: web

Посетители на сайте anarc.at

https://anarc.at/blog/2022-01-28-one-year-visitors/
Просто рассматривает всякую статистику, среди которой отмечает одного
посетителя с Lynx-ом:

    I also salute that "Lynx" visitor who managed to come up on those
    stats. Knowing that Lynx doesn't run Javascript or display images,
    you must find yourself pretty clever with that user agent string
    hacking. Or did I miss something?

Напишу ему, что это не шутка, что никто агента не подменял.

    ------------------------ >8 ------------------------

Greetings!

I saw your https://anarc.at/blog/2022-01-28-one-year-visitors/ post and
just want to note, that I am the visitor with the Lynx :-) (on FreeBSD
from Russian Federation). I do not alter User-Agent, I really use it as
my main browser most of time. Sometimes I use Links2 to see pages with
much of images. Sometimes I use Xombrero browser -- the best GUI browser
I have seen so far, but unfortunately its development and support is
over for many years.

If there is small number of images (not photo album), then lynx is ok,
because it shows links to the images, that I just follow -- it downloads
them and shows through the external program. It is completely ok for me.
I turn of automatic images downloading/showing even in GUI browser,
because so many sites have them completely useless.

Those browsers do not support many modern features like HTTP/2, possibly
modern TLS 1.3 implementation and no JPEG XL, AVIF, WebP (in Links2).
Moreover Xombrero very often segfaults when trying to display some
images. Possibly because of unsupported old WebKit. Only Xombrero gives
ability to monitor and manage trust-of-first-use X.509 certificates, do
certificate pinning. Also that Xombrero often does not work properly (at
all) with basic HTTP authentication. But I still want to use all of them!

All of that is not a problem anymore when I wrote tofuproxy:
http://www.tofuproxy.stargrave.org/
That HTTP/HTTPS proxy acts as TLS-terminator, taking all certificate
management issues. When some browsers visits the site those certificate
is changed (for example), then it shows Tk-written dialog with
certificate chain, saved certificate chain and waits for user
interaction (accept, accept ones, reject). Because it is written on Go,
it also acts as HTTP-terminator, supporting keep-alives, HTTP/2 (through
ALPN) and TLS resumption tickets. Also it does DANE-EE validation check,
that hardly anyone other does at all. It also takes TLS client
authentication and HTTP basic authorization through Tk-dialogs too. It
transcodes JPEG XL/AVIF/WebP (if user-agent != Xombrero) to PNG
transparently in background and has other various content
checking/altering things (like replacing HTTP redirects with explicit
HTML page to aware of redirection happening), forbidding of
analytics/spying/advertisement requests. Also I added WARC browsing
support to it -- through FIFO files you can load/index .warc.(gz|zst)
and browse them (Python-based viewers do not install for me anymore in
many cases because of broken Python's packaging ecosystem, and other
WARC-browsers requires various external databases like Redis, that is
too burdensome for only local usage). Just for fun I also added Gemini
protocol support, however I do not like its idea at all.

I forbid anyone trying to execute some untrusted code without my clear
explicit permission. So I do not use websites with JavaScript at all.
With other ones (and with tofuproxy) -- all of that is pretty modern
(TLS 1.3, session resumption) solution.

оставить комментарий

комментарий 0:

From: kmeaw
Date: 2022-01-29 10:37:30Z

Кстати, а почему tofuproxy рисует диалоги сам, а не использует
обычные HTML формы? Вроде бы и у Lynx, и у Links2 нет никаких проблем с
их отображением. Если использовать формы, то можно будет поднять один
tofuproxy на всю сеть, а не запускать его на каждом устройстве.

комментарий 1:

From: Sergey Matveev
Date: 2022-01-29 10:52:49Z


>Кстати, а почему tofuproxy рисует диалоги сам, а не использует
>обычные HTML формы?

Изначально именно так я и хотел сделать. С диалогами у lynx/links*
проблем нет конечно. Но это существенно усложнит код и мне лениво.
Сейчас если нужен нужен какой-то ввод от пользователя, например когда мы
находимся в функе/hook проверки валидности сертификата, то я в коде могу
просто вызвать showDialogAndGetAnswerFromUser() и в ней уже дальше
продолжить штатно выполнение. А с диалогами бы пришлось как-то сохранять
state запроса, state вообще всего этого "подвешенного" состояния (когда
мы ещё не знаем вообще одобрен ли сертификат пользователем или нет). Я
не помню пробовал ли это сделать или нет, но мне кажется это очень всё
усложнит. Задача безусловно выполнима, но лично для себя я профита не
получил бы. Tk-диалоги у меня немного интерактивные -- позволяют листать
certificate chain-ы, что на чистом HTML пришлось бы делать через запросы
к серверу (paginator, грубо говоря, на стороне сервера).

>Если использовать формы, то можно будет поднять один
>tofuproxy на всю сеть, а не запускать его на каждом устройстве.

Согласен. Но писал то я для удовлетворения собственных потребностей, а у
меня уже 10+ лет только один компьютер с которого я работаю :-)

комментарий 2:

From: Oskar Sharipov
Date: 2022-01-30 17:04:48Z

tofuproxy в Top Stories на HN:
https://news.ycombinator.com/item?id=30134058

комментарий 3:

From: Sergey Matveev
Date: 2022-01-30 22:10:16Z


>tofuproxy в Top Stories на HN:

Спасибо за ссылку! Она оказалась последней каплей в море моего терпения :-)
Где бы не появились ссылки на мои ресурсы -- всегда рождается обсуждение
PKI, почему не поднял Let's Encrypt и всё такое прочее. Психанул и написал:
http://www.stargrave.org/WhyNotLE.html

Сгенерирован: SGBlog 0.34.0