memcached
https://gyazo.com/71444e7c199c2a3932f4c3e286dd857b
歴史
Origin
Memcached was originally developed by Brad Fitzpatrick for LiveJournal in 2003.
内製キャッシュストレージとして開発された
のちにオープンソース化
とにかく知る
おすすめ読み物
WEB+DB PRESS Vol.47の特集2「mixi,ニコニコ動画,livedoor [実例から学ぶ]memcachedベストプラクティス」で掲載した内容の元となった座談会の様子を動画でお送 りします。
動画コンテンツ!!
プロトコル
テキストプロトコル
get foo
キー最大長は250bytes
バイナリプロトコル
キー最大長は65536 (2^16) bytes
セキュリティ
memcachedはプライベートネットワーク内での利用が想定されている
一般論として、オープンインターネットにミドルウェアを露出させない
クリティカルな情報をキャッシュしない
saltedなパスワード、IPアドレス、などなど
O/R mapperによって知らず知らずのうちにキャッシュされるパターン (ウッ)
version 1.4.3以降にはSASLによる認証機能があるが バイナリプロトコルしか対応してない
クライアントが対応していないと使えない
--enable-sasl オプション付きでmemcachedをビルドしないといけない
memcached injection
改行コードをエスケープしないことによるinjection
キー最大長制限によるinjection
対策
バイナリプロトコルを使う
改行コードのことを気にしなくてよい
キー最大長が65536 (2^16) bytesになる
キーを適切にエスケープする、不正な入力を弾く