Home

memo-space

ファイルの直リンクを防止する方法をもう少し考えてみる

  • 2007-05-31
  • php

Refererを使わずに直リンクを防止する方法を考えてみます。

元ネタ: cl.pocari.org - PHP の apache_setenv と virtual を利用して,ファイルへの直リンクを防止する

この foo.php のファイル名を時間によって変えるなどすれば,まあ,直リンクを防止することができる……のかな?ちと強引ですが.

つまり、「直リンクを防止する」ことを考えるより「ある一定時間しか有効でないURLを作る」ことを考えれば良いということじゃないでしょうか。

で、foo.phpのファイル名を変えちゃうと、外部からの直リンクは防げても、内部からの普通のリンクを貼る時に困りそうです(それならぶっちゃけ、画像のファイル名そのものを時間によって変えちゃってもいいわけだし)。

なので、時刻をパラメータとして渡す方針で。

フェーズ1

  1. foo.php?t=....のようにfoo.phpにタイムスタンプを渡す
  2. foo.phpの中で$_GET['t']と現在時刻を比較し、n分以上たっていればはじく
  3. でもこれじゃ簡単に偽装されちゃうYO!

なので、フェーズ2

  1. foo.phpにタイムスタンプと、(タイムスタンプ+秘密鍵)のHMACを渡す。
  2. foo.phpの中で、(タイムスタンプ+秘密鍵)のHMACを再計算して、渡ってきたHMACと一致するかチェック。
  3. foo.phpの中で$_GET['t']と現在時刻を比較し、n分以上たっていればはじく

な感じじゃないでしょうか。本当はapache moduleとかで書いた方が楽そうですが。

勝手に添削「タグを実現するテーブル設計を妄想する」

添削するほどエロくないですが。

元ネタ:タグを実現するテーブル設計を妄想する - よくきたblog

まず、

SELECT COUNT(*) FROM (SELECT user_id FROM item_tags WHERE item_id = 1 GROUP BY user_id) AS rows;

は、

SELECT COUNT(DISTINCT user_id) FROM item_tags WHERE item_id = 1;

でいいです。

Continue reading

少年法厳罰化に対するmixiの反応に引いた

少年の凶悪犯罪の増加ってマスコミが煽ってるだけだよねっていう意見はわりと 浸透しているのかと思っていた。

[mixi] 日記一覧 | 少年法「厳罰化」の改正案成立(mixi内)

自分の考え方は、思ってたより少数派なんだなぁって思った次第。

近年、多くのマスメディアがしばしば「少年の凶悪犯罪が急増している」といった内容を喧伝しているが、「犯罪白書」によれば、少年犯罪の発生は1960年代前・中盤が最も多く、1960年代後半から激減。1970年代以降減少傾向にあり、マスメディアによる情報操作が行われている可能性が捨てきれない。(少年犯罪 - Wikipedia)

Continue reading

読書ブーム到来

一年ぶりの読書ブーム到来(現実逃避ともいう)。7冊くらい買ったかな。新書とエッセイが1冊ずつ。あとは小説。読んだ順に書きます。

おもしろかった。

憲法九条は、突然変異の奇跡で、無邪気な理想論で、挑戦で、冒険で、面白くて、修道院みたいで、ドン・キホーテみたいだ。

対談の間に挟まっている太田さんの花見のエピソード。桜を狂気の花というあたりは、太田さんは感性の人だなぁと思う。

九条を守りたいという立場でありながら、その発想は世界を一つの家族にという発想や戦争に突入していった時の発想に通ずるのではないかという疑問を呈するあたりもおもしろい。

PHPを3ヶ所だけ直すとしたら

  • 2007-05-22
  • php

そろそろPHPに関して一言いっとくか

PHPについてはいろいろありますが手短に釣られて見ます。

PHPのあれが駄目とかじゃなく、 もし神様(何の?)が、今までのは無かったことにしてPHPをどこでも3ヶ所直していいよっていったらどうするかってのを聞いてみたいです。

Continue reading

ミックさんのパズルに挑戦

ミックさんの問題に挑戦してみました。 case文を使う方が先に思いついたけど。こんな感じかな。 ヒラをどこで弾くかが微妙なところですが。

方法はいくつかありますが、代表的なものとしては、HAVINGを使ってUNIONする非効率的なものと、CASE式を使った効率的なものがあります。それぞれどんなクエリになるか、考えてみてください。

Yahoo!ジオシティーズ - ミックのブログ

Continue reading

SQLでIPアドレスから携帯のキャリアを判定する

PostgreSQLのinet型を使って、IPアドレスから携帯のキャリアを判定してみます。

とりあえずIPアドレスの情報源。

Continue reading

より分散された世界を想像する

人のBlogを読んだ時、そこに感想を書き込もうとするのがコメント。 自分のBlogに帰って、そこに感想を書き込んでから送るのがトラックバック。 それぞれ長所短所があるわけですが。

それより、自分がどこに書いた、どこに保存されているか、それをどのように見たいかというのはどうでもいいというか、もっと自由でいいんじゃないかなあ。

hail2uの中の人のblogなんかは、はてなブックマークでブックマークするとコメントできるようになってます。 これは、 はてなブックマークエントリー情報取得API を使ってJSONPでもってきて表示してるんだと思います。

同じことをあちこちでOpenIDでやれば、何がおこるのかな。 僕のBlogも、他のBlogへの感想も、全然バラバラのサーバに対して書き込まれる。 僕がはてなやlivedoorやmixiに書きちらかしたエントリは、IDでひもづけられる。RSSリーダーで気になったエントリがあれば、その場でそこに何か書き込む。 もうエントリとかコメントとかトラックバックとかブックマークとか、そんな区別いらないんじゃないかな。

TTYShareイイヨー

ずっと前から欲しかったもの(というか作ろうとして挫折してたもの)。あったじゃん。

TTYShare - share and view your tty data online.

ttyrecをweb上で再生するしくみです。ついでにOpenID対応してるよ。エクストリームなvi使い(いやemacsでもいいけど)のみなさん。今こそそのテクニックを披露する時ですよ。

あーあと、テクニックを披露する場合はぜひrectickもあわせて使っていただきたい。

関係無いけどtypespeedというのをはじめて知った。

OpenIDとmixiとはてなとlivedoor

話題になりはじめてからもう二年くらいたつのかもしれないけど、 やっとOpenIDが盛り上がってきたんでしょうか。

ほんまかいな。国内では対応サービス全然増えてない気がしますが。

Continue reading

単純なblosxomのコメントスパムよけ

数週間前にコメントスパムよけの仕組みを入れました。 ここのサイトはアクセス数が少ないので参考にならないかもしれませんが。

Continue reading

CP932 vs JISX0213

CP932の2バイト部分(何て呼べば良いんだろう)とJIS X0213の1面を比較してみました。元データはunicode.orgのCP932.TXTと、使いこなそうユニコードのsjis0213.txtです。

CP932 vs JIS0213(2)
CP932 vs JIS0213(2) posted by (C)あきを

  • グレーの点はCP932でもJISX0213でもreserved。
  • 赤い点は、CP932とJISX0213でUCSのコードが違う。
  • 緑の点は、JISX0213にしか存在しない。
  • 青の点は、CP932にしか存在しない。

となっていて、白い部分は一致しています。一番気になるのは青いところで、これは13区の10文字です。

CP932UCS
13800x8790U+2252
13810x8791U+2261
13820x8792U+222b
13840x8794U+2211
13850x8795U+221a
13860x8796U+22a5
13870x8797U+2220
13900x879aU+2235
13910x879bU+2229
13920x879cU+222a

これらのうち9文字は、2区との重複文字です。

Windows-31J の文字セット

残りの1文字(13, 84)はどこへいったのでしょう。sjis0213.txtには(1 -6-18)にこんなコメントがありました(適当に改行してあります)。

1- 6-18 0x83B0  U+03A3      # GREEK CAPITAL LETTER SIGMA 
# unified with Windows CP932 0x8794 (as a "KOKUNAI-JISSOU-GOKAN-MOJI",
a domestically implemented compatibility character, N-ARY SUMMATION (U+2211).

うーん。調べてみようと思ったらJISのサイトがメンテナンス中だった。

関連: 図解:Windowsの文字コード

Home

Search
Feeds
Profile
石田@苫小牧市と名乗りつつ札幌の某社に勤務するプログラマ
書いた本
Links

Page Top