Privacy Policy Update: No Mining

I got a weird spam e-mail overnight asking if I wanted to embed someone’s cryptocurrency miner into my website. They purport to be opt-in only, but all the other examples I’ve read about online up to now have been surreptitious, hijacking the browser for its own ends without asking. The end user only notices when their computer fans switch on or their computer gets too hot.

Such mining scripts have been strongly contentious in other websites. They exert excessive and unilateral control over the browser’s system. I certainly had such things in mind when I promised never to embed ads and the like in my website, but I had never spelled out that I had no intention of hijacking the browser for my own ends (ad or not).

This morning, I added a new point to my privacy policy.

  • This website does not load software in the user agent (your browser) which serves any purpose beyond displaying the website and its assets—meaning it does not use your browser to mine cryptocurrency, for example.

Most of my privacy policy describes what the website does without mentioning the browser. This point adds a clear expectation for browsers which visit.

I generalized the point a bit to include things which aren’t just cryptocurrency miners. It might be tempting to grab a few of my users’ cycles for SETI@home or the like, for example, but if a user wants to contribute to a project like that, they can do so themselves. I’ll have to rely on persuasive words to bring people around to a cause like that.

The Apology Contract

A binding contract has three elements: offer, consideration, and acceptance—all of which must exist among mutually assenting parties. These elements, in some form or another, have existed since time immemorial. A contract of sale, for example, contains an offer (the good for sale at a price), the consideration (the money exchanged for the good), and the acceptance (the actual mutual agreement to exchange the good for the price).

Many of our social interactions implicitly follow a similar structure because they rely upon offering, considering, and accepting one another’s social cues in more-or-less formulaic ways. Some of these interactions are rigidly ritualistic—”thank you,” “you’re welcome”—and some are not (flirting, for example).

I have read several articles on the best way to apologize, with which I agree, and which address the person giving the apology with humility and sincere intent, acknowledging the harm done, and reducing further harm. (One such popular example was written by John Scalzi. Another good example aimed at children comes from a parenting blog.)

However, I have lately come to worry that the act of the apology often still imposes a contract-like, ritualistic exchange. On receiving an apology, I have in the past found myself at odds with every instinct in my body to assuage the apologizer who, having recognized their fault and promising in good faith to do better, awaits something like an absolution from me before moving on.

The formula for how we’re taught to apologize, as children, goes:

— I’m sorry.

— It’s okay.

I’ve tried withholding that second part of the exchange as I’ve gotten older. Sometimes I don’t feel okay. Sometimes it’s not okay. Maybe I need space or time to get there. Maybe I just want to move on without needing to perseverate on the feelings of the person who wronged me.

This is especially difficult for an in-person conversation. Without the expected words, “it’s okay,” or, “it’s fine,” in my mouth, what am I to say? I don’t necessarily want to prolong the moment, either. I often have an interest in moving past the moment, but I don’t have some alternative wording that isn’t focused on the feelings of the apologizer.

When I don’t automatically say, “it’s okay,” a loaded pause often seems to follow. The apologizer feels they have done everything right, and I haven’t followed through on my end of the apology. They wait for me to give them some way to get past the moment, and when I don’t offer that back, they also don’t know how to continue.

The ritual of the apology feels a lot like a social contract because we’re conditioned to treat it as such from a young age, to offer some comfort to someone who has apologized and meet them part way. However, this is no contract. The formula, like so many social rituals, instead imposes an expected response on the recipient. There’s not necessarily mutual assent.

What I have read about the best way to offer an apology sometimes, but doesn’t always, offers a final step I believe is extremely important—once given, expect nothing back. Any forgiveness, grace, or acceptance on the part of the recipient is a gift, not an exchange. Beyond that, though, you need not expect any response whatsoever, not even acknowledgement. The apology, for the one giving it, is both the understanding of harm and the promise to reject furthering it. It is not a request.

What’s more, I can’t recall seeing anyone write for the person receiving the apology. I address you now: You owe nothing. Take comfort, if you can, that someone has seen how they have harmed you. Find peace, if you can, in the closure they offer. Exchange what you like, and repair the relationship if you want it. But your duty to them ended when the apologizer wronged you in the first place.

Adding a Privacy Policy

I’ve decided to give my website a privacy policy. It’s maybe more of a privacy promise.

It might sound strange to make a privacy policy for a website with which I don’t intend users to interact, but I’ve realized that even browsing news websites or social media has privacy implications for users who visit them. So I wanted to state what assurances users can have when visiting my website—and set a standard for myself to meet when I make modifications to my website.

Most of the points in it boil down to one thing—if you visit my site, that fact remains between you and my site. No one else will know—not Google, not Facebook, not your ISP, not the airplane WiFi you’re using, not some ad network.

I went to some trouble to make these assurances. For example, I had to create a WordPress child theme which prevents loading stylesheets associated with Google Fonts used by default. Then—since I still wanted to use some of those fonts—I needed to check the licensing on them, download them, convert them to a form I could host locally, and incorporate them into a stylesheet on my own server.

I also needed to audit the source code for all the WordPress plugins I use to see what requests they make, if any, to other parties (and I’ll have to repeat this process if I ever add a new plugin). This was more challenging than I realized.

I needed to ensure I had no malware present and that my website remain free of malware. I began with WordPress’s hardening guide. I found a very thorough plugin for comparing file versions against known-good versions (WordFence, which I found recommended in the hardening guide). I also made additional checks of file permissions, excised unused plugins, made sure all server software was up to date, and incorporated additional protections into the web server configuration to limit my attack surface.

Finally, I had to browse my website for a while using my local developer tools built into my browser, both to see if any requests went to a domain other than my own and to inspect what cookies, local storage, and session storage data were created. This turned up a plugin that brought in icons from a third party site, which I had to replace.

After all that, I feel sure I can make the assurances my privacy policy makes.