Securing Your Forms With Braintree.js

Securing Your Forms With Braintree.js

Think back to the web of fifteen years ago. Most of the web sites of the time consisted of a few pages of content along with a contact page (and maybe even a guestbook.) Most often that contact page was backed by a script that mailed the results to a fixed e-mail...
Let’s Talk About Backups

Let’s Talk About Backups

Backups Backups are important. Everyone knows this. Few do anything about it, most likely because it seems like one more thing (like getting life insurance, a will, a retirement plan, etc.) It also doesn’t have immediate consequences. However, if you need a backup,...
Implementing Mozilla Persona

Implementing Mozilla Persona

Mozilla Persona is decentralized sign-in protocol. (Actually, the protocol is named BrowserID, but Mozilla rebranded their implementation to confuse everyone. It worked.) It uses e-mail-like identifiers and public-key authentication to validate identity assertions....
A Story About a Bug

A Story About a Bug

I’m going to tell you a little story about a bug. Like most bugs, it started with an invalid assumption. You see, I was ambushed by permissions on a network file system. Here’s what my code looked like, at least in spirit: import os import os.path # Build a path...

How Does a One-Time Password Work?

How does a one-time password work? Photo by EdwinMSarmiento If you read a previous article I wrote, you’ll remember that I mentioned the use of multi-factor authentication. One common tool for implementing the something you have factor is the one-time password. When...