ということで、stereologを改造したときのプログラム公開です。
送信されてきたURLを読み込みにいって、自分のサイトのURLが存在するかどうかをチェックしています。
悪質スパマの立場から考えれば、これをすり抜ける方法くらいすぐに思い浮かびますが、ま、これが今時点での大手ブログサイトでの対処とほぼ同等なもんでしょ。
tb.php 28行目付近
if (! isset($_REQUEST['url'])) {
response("url not specified");
}
$url = htmlspecialchars(urldecode($_REQUEST['url']));
$fp = fopen($url,"r");
if (! $fp){
response("url not found");
}
$contents = '';
while (!feof($fp)) {
$contents .= fread($fp, 8192);
}
fclose($fp);
if ( strpos($contents, ROOT_DIR) === FALSE ){
response("link ( ".ROOT_DIR." ) is not found");
}
if (! isset($_GET['id'])) {
response("id not specified");
}
$id1 = substr($_GET['id'], 0, 4);
$id2 = substr($_GET['id'], 4, 4);
$datetime = time();
パクりました。
ありがとうございます。
こちらのブログからTBしたのですが
反映されませんね^^;
ナイスなご指摘ありがとうございます。
stream_get_contentsが使えるのはPHP5からですね。
テスト環境がPHP5だったので、本番環境(PHP4)にそのまま上げてしまいました(ま、よくあるミスで…)。
ブログ本文中のPHPソースもstream_get_contentsを使わないよう(=PHP4でも動くように)に書き換えておきました。
お手数をおかけして申し訳ないですが、トラックバック再挑戦してみてください。