We've been swamped with a flood of spam for the last few months. Some losers are creating hundreds or thousands of accounts on undermoderated servers and pestering the whole fediverse with junk. Mastodon itself provides no mechanism for admins to reject statuses that contain certain strings, even though many people have begged for this over the years. And while I could learn enough Ruby on Rails to implement such a feature myself, I'm not confident that it would be accepted into the main project and I don't want to maintain a fork.
What I do have is root-level access to my instance's database, enough SQL knowledge to be dangerous, and a willingness to break things and see what happens. I put all that in a blender and some working code came out the other side.
What you're looking at is a PostgreSQL check constraint that applies a function I wrote to every status insert into the database, and rejects ones that contain text I don't ever want to store on my instance. If I try to post a toot that contains such text, I get a little "500" popup in the corner of my screen and it doesn't get sent. I'm not sure what happens if another server tries to send us a toot with that text. I'm guessing the API returns a 500, too, and it fills up their outbound queue with retries. I honestly couldn't care less. Don't send us spam, yo.
Before you apply this on your own server, read the giant warning at the top. If you don't, and you mess around with this without following the advice, you're going to be a very sad camper next time you try to restore your database. Don't panic, though. This uses normal, built-in PostgreSQL features in the normal, not-"clever" way they're meant to be used. The risk isn't to this database check specifically, but to all PostgreSQL check constraints that call user-defined functions. Like so many other database features, it's something to learn, understand, and respect.
The Call Attendant (callattendant) is an auto attendant with an integrated call blocker and voice messaging system running on a Raspberry Pi. It stops annoying robocalls and spammers from interrupting your life. Let the Call Attendant intercept and block robocallers and telemarketers before the first ring on your landline.
The callattendant provides international support with configurable phone number formats, with flexible and editable blocked-number and permitted-number lists.
Works with a US Robotics 5637 USB modem, not VoIP.
A collection of awesome resources for running your own federated social media website.
Microsoft 365 requires connectivity to the Internet. The endpoints below should be reachable for customers using Microsoft 365 plans, including Government Community Cloud (GCC).
RSS feed of changes: https://endpoints.office.com/version/worldwide?allversions=true&format=rss&clientrequestid=b10c5ed1-bad1-445f-b386-b919946339a7
JSON configuration document: https://endpoints.office.com/endpoints/worldwide?clientrequestid=b10c5ed1-bad1-445f-b386-b919946339a7
Webcrawlers/bots often identify themselves in the user agent string. Well it turns out, up until now, a huge majority of my bandwidth usage has come from bots scraping my site thousands of times a day.
A robots.txt file can advertise that you don't want bots to crawl your site. But it's completely voluntary—a bot may happily ignore it and scrape your site anyway. And I'm fine with webcrawlers indexing my site, so that it might be more discoverable. It's the bandwidth hogs that I want to block.
A selection of blocklists for uBlacklist. Includes AI generated content sites, website clones, specific problem sites (like Pinterest), spam and SEO sites. Each appears to have its own Git repo.
Each list appears to have wildcarded URLs in it (e.g., *://algebra.com/*
), which might or might not be useful in other contexts.
uBlacklist is a Google Search filter for Chrome, Firefox and Safari. Block sites with specific URLs using match patterns or regular expressions.
Block sites with specific titles using regular expressions. Support Bing, Brave, DuckDuckGo, Ecosia, Qwant, Searx, Startpage.com, Yahoo! JAPAN and Yandex. Synchronize block rules among devices using Google Drive or Dropbox. Subscribe to public block rules.
So, it's basically an ad blocker, but for crap search results. You can block specific things on your own or add blocklists to do it for you.
A blog post detailing OpenAI's IP ranges and suggestions for blocking them.
A quick post today showing some different ways to block visitors via their IP address. This can be useful for a variety of reasons, including stopping some stupid script kiddie from harassing your site, or preventing some creepy stalker loser from lurking around your forums, or even silencing the endless supply of angry trolls that never seem to get a clue. So many reasons why, and so many ways to block them.
Create an ai.txt file for your website to set permissions for text and data mining. Use the toggles to allow or block your content from being used to train AI models. By default all content is opted out. Selecting allow for any content type will let data miners know that they may use content on your website of that media type.
There is no guarantee that anybody will ever obey this, but it can't hurt to try.
A simple-to-use network-wide ad- and tracking blocking system. Set up something like a single-board computer (a spare RasPi or old laptop is fine), run the script, and it converts it into a DNS-level adblocking system. Then configure your local router to use it as its upstream DNS instead of your ISP. Has an easy to use and interpret dashboard. Also has a REST API but I haven't experimented with it yet.
A large list of links to various ad-, sketchy-, spam-, and tracking blocklists in /etc/hosts format. Suitable for use with Pi-hole adblocking.
The Ultimate Nginx Bad Bot, User-Agent, Spam Referrer Blocker, Adware, Malware and Ransomware Blocker, Clickjacking Blocker, Click Re-Directing Blocker, SEO Companies and Bad IP Blocker with Anti DDOS System, Nginx Rate Limiting and Wordpress Theme Detector Blocking. Stop and Block all kinds of bad internet traffic even Fake Googlebots from ever reaching your web sites.
Aircraft owners or designated representative may request limiting aircraft data displayed (formally referred to as blocking) or unblocking of flight tracking data. Limiting aircraft data from the FAA data systems will limit flight tracking information transmitted over the Internet. “Unblocking” will ensure aircraft flight data will be included in the FAA data feed utilized by internet flight tracking vendors.
Blocky is a DNS proxy for the local network written in Go with following features:
Blocking of DNS queries with external lists (Ad-block) with whitelisting
Definition of black and white lists per client group (Kids, Smart home devices etc) -> for example: you can block some domains for you Kids and allow your network camera only domains from a whitelist
periodical reload of external black and white lists
blocking of request domain, response CNAME (deep CNAME inspection) and response IP addresses (against IP lists)
Caching of DNS answers for queries -> improves DNS resolution speed and reduces amount of external DNS queries
Custom DNS resolution for certain domain names
Serves DNS over UDP, TCP and HTTPS (DNS over HTTPS, aka DoH)
Supports UDP, TCP and TCP over TLS DNS resolvers with DNSSEC support
Supports DNS over HTTPS (DoH) resolvers
...
This repository contains a blacklist.txt of XMPP domains that are used by spammers and do not react to abuse complaints. Servers are added and removed according to the following rules. The track record leading to addition or removal is documented in the respective git commit.
How to configure nginx to block certain user agents from accessing a site.