QRコード付き年賀状??
普通の年賀状だと,何かおもしろくない…
ってことでいろいろ考えた
- 暗号化してみる? → いやいや,普通の人には読めない.
- URL書いといてそこにアクセスしたらメッセージ読めるようにする? → うーーん,打ち込み間違いとかありそう.リンクは打つものじゃなくてクリックするもの
- QRコード貼り付けてみる? → これならいろいろ出来るし楽しそう.(ギークな方にはQRコード燃やしたやつ送りつけて正月からCTFができる)
何ができるの?
名前とメッセージを入力すると,QRコードを生成してくれます
例えば,名前
のところにЯ
と入力して,内容
のところに昨年はお世話になりました!!!今年もよろしくお願いします!!!
と打てば,「昨年はお世話になりました!!!今年もよろしくお願いします!!! Яさんからのメッセージです.」というメッセージが含まれたQRコードが生成されます.
あとはそれを年賀状に貼り付けてあげれば完成です.
読み取ったらQRコードはこんな感じに.
使い方次第でおみくじだったり,クイズにしてみたり,いろいろ使えるツール.QRコードを読み取るまで中身が見れないというちょっとしたドキドキ感もあります.
開発雑記
技術的ないろいろ
WebアプリケーションフレームワークとしてRuby on Rails, CSSのフレームワークとしてBootStrapを使用しています.
QRコード作成関係のgemなどはこちらを参考にしました.
Webサーバはrailsの標準のWEBrickを使っています.リバースプロキシはNginxで80番ポートに来た通信を3000番ポートに転送しています.
データベースはこれまたrails標準のSQlite3を使用.
ソースコードはgithubに上げています.(helpページを作ろうとした残骸があったり…)
制作期間
2日です… 1日目にロジック部分と大体のレイアウトを実装して,2日目に下の方に使用方法とできる年賀状のイメージ画像を作ったり,ドメイン取得したりwebサーバの構築を行ったりデバッグしたりいろいろやりました.
公開したらいろいろバグが…
昨日まぁサークルの人たちにちょっと使ってもらったんですが,後輩の作ったアプリでCTFを始める先輩たちがw
入力フォームがあればJavaScriptを埋め込んじゃいたくなったり,バリデーションがちゃんと設定されているかを試してみたりする人とか,機種依存文字を入力してShift-JISへの文字コード変換でエラー出させたりとか…
でもやっぱりバグ見つけるのって難しいから,いろいろよかったかなと思っています.
まだバグあるんだろうな…
公開した時のメモ
ドメイン割り当てとかやったことなかったけど最近サーバ関係の勉強始めたおかげで結構すんなり出来た.
以下,CentOS7でやってます.
yum install nginx
でnginxを入れて/etc/nginx/conf.d/default.conf
を編集します.変にいじると動かなくなるので,コピーは取っておいたほうがいいかと思います.
server { listen 80; server_name yukisako.sun.ddns.vc; #charset koi8-r; #access_log /var/log/nginx/log/host.access.log main; location / { proxy_pass http://yukisako.sun.ddns.vc:3000; }
と,こんな感じに書き換えることで,80番に飛んできたアクセスを3000番ポートに渡しています.
もっといい方法があるとは思いますがこんな感じで今回はやりました.
よければ使ってみてください!!