PHPでつくるシリアルコードによるダウンロードサイト
⚠この記事はブログ移転前のアーカイブです だいぶ前になりますが,私が企画していたEpic RPG 4という音楽コンピにて作品の受取にダウンロードコード(シリアルコード)を使ったダウンロードページを制作しました.同人音楽でもディスクというモノ以外にスマートな提供方法があればいいなあと思い作りました.(本サービスは参加者向けのみの提供でした.一般頒布向けにコードは発行していません)
この記事では(再現コードですが)PHPを用いてシリアルコードによるダウンロードシステムを作りたいと思います.
もくじ シリアルコードによるダウンロードサイトとは シリアルコードの仕様 使用する文字 文字の長さ コード出力 ダウンロードしてみる おまけ:reCAPTCHAで総当り対策 シリアルコードによるダウンロードサイトとは つまりこういうことです.
コードを持っている人だけがそのファイルをダウンロードできる. コードは推測・総当りしにくい. URL直叩きによるファイルアクセスは不可 シリアルコードの仕様 シリアルコードの仕様を決定します.使う文字とか長さです.提供先の規模に応じて決定します.
使用する文字 基本的にはアルファベット+数字です.コードの発行量に応じて使う文字の種類を決定します.
アルファベット大文字+小文字+数字 26+26+10 = 62 アルファベット大文字+数字 26+10 = 36 【オススメ】:1,2から誤読しやすい文字を排除 「I,1」「O,0」「V,U」など などがありますね.コードの発行量が多い(1万超える)場合「大文字+小文字+数字」を選ぶべきでしょう.ただし,可読性と入力のしやすさが低下してしまいます.
オススメは「アルファベット大文字+数字」から「誤読しやすい文字を排除」する方法です.36文字から30文字に減ってしまいますが可読性が増します.
文字の長さ 文字の長さを決定します.短すぎても長すぎてもダメです.短すぎる場合,コードを持っていない人が総当りで不正にダウンロードできる可能性があるためです.長さにブレがあるような作り方でもいいでしょう.
長さは8~15桁が良いと思います.
「使用する文字」セクションで「アルファベット大文字+数字」から「誤読しやすい文字を排除」する方法を選んだ方は 15桁~20桁あると良いでしょう.