Личный блог с мыслями и наблюдениями

Как Cloudflare защищает email

26.04.2020   go   cloudflare   javascript   email   Vernam   шифр  

Как опубликовать адрес электронной почты на сайте, не боясь, что в него тут же начнут валиться горы спама?

В большинстве случаев эту задачу решают так: вставка адреса картинкой; написание особым способом, который читатели сайта смогут расшифровать (не всегда); форма для ввода текста письма. Разберём плюсы и минусы каждого.

Вставка адреса картинкой

+ большинство ботов не читают тексты с картинки

– оформление картинки нужно как-то вписать в контекст

– картинку нужно хранить и беречь

– не получится создать письмо по нажатию на картинку

Написание особым способом

+ скорее всего боты не смогут понять что это адрес электронной почты

– как и некоторые посетители сайта: help 911 (собака) mail com (замените пробелы на точки)

– боты всё же умеют разбирать большинство таких "шифровок"

Форма для ввода текста письма

+ ваша почта явно не указана

– форма ввода текста — источник для спама (популярные капчи тоже разгадываются)

– разработка и поддержка формы ввода письма

– люди могут не хотеть писать в некую форму, не зная получит ли нужный человек письмо

 

Есть ли способ замаскировать почту так, чтобы и посетителям было удобно и боты на неё не обращали внимания?

 

Cloudflare Email Address Obfuscation позволяет подменять адреса на html-страничках таким образом, чтобы они перестали быть понятными ботам.

-> 472f222b37697e7676072a262e2b6924282a

Откройте исходный код страницы и убедитесь, что там нет адреса электронной почты!

Если интересно как работает этот способ и как сделать аналогичное решение у себя, читайте дальше.

Читать далее →


Github Actions и автоматическое создание релизов на Go

27.09.2019   техническое   github   go  

Если вам как и мне надоело делать релизы на Github для тех кто хочет попробовать последние изменения в коде, то можно автоматизировать это средствами самого Github, а именно Github Actions.

Следующий код при коммите создаст (или обновит релиз с именем/тэгом latest) и выложит в него собранные бинарники под linux/os x/arm/windows.


name: Release on commit or tag on: push: branches: - master - release/* jobs: build: name: Build runs-on: ubuntu-latest steps: - name: Set up Go 1.13 uses: actions/setup-go@v1 with: go-version: 1.13 - name: Check out source code uses: actions/checkout@master - name: Build OS X binary run: GOOS=darwin GOARCH=amd64 go build -o $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2)-darwin64 -a -ldflags '-s -w' . - name: Build Linux binary run: GOOS=linux GOARCH=amd64 go build -o $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2)-linux64 -a -ldflags '-s -w' . - name: Build ARM binary run: GOOS=linux GOARCH=arm GOARM=6 go build -o $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2)-arm -a -ldflags '-s -w' . - name: Build Windows binary run: GOOS=windows GOARCH=amd64 go build -o $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2).exe -a -ldflags '-s -w' . - name: Install olsu run: wget https://github.com/Telling/olsu/releases/download/v0.1.0/olsu-linux-amd64.zip && unzip olsu-linux-amd64.zip && chmod +x olsu-linux-amd64 && pwd && ls -la - name: Create or update release env: OLSU_TOKEN: ${{ secrets.GITHUB_TOKEN }} OLSU_DELETE_RELEASE: yes run: ./olsu-linux-amd64 -o $(echo $GITHUB_REPOSITORY | cut -d "/" -f 1) -r $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2) "Latest release" "latest" "Automatic release" $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2)-darwin64 $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2)-linux64 $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2)-arm $(echo $GITHUB_REPOSITORY | cut -d "/" -f 2).exe