産経新聞が有料会員登録をしなくても無料で紙面と同じように読める件について(PHPで産経新聞紙面を得るスクリプト)

産経新聞のiPhoneアプリのパケット解析してみた - konisimple logに書いたのはお遊びでした。
でも実は産経新聞は紙面データで金とってるそうです!→||| 産経NetView |||

産経さん、今の状態だと10行ぐらい*1コード書くだけで簡単に紙面見れちゃいますよ!
これでいいんですか!?

そんなわけないだろ、というひとのために実際にかいてみました。
例えばPHP使える環境があるなら下のファイルを置くだけで見れちゃう。
かなりセキュリティ甘いのではという気がするのですがどうなんでしょう。
しかも,過去のデータも見れちゃうんですね。どこまで古い奴までみれるかは調査してないけど、割と古いのも見れる。

ウェブで産経新聞を画像で読むPHPスクリプト


こんな感じで普通に見れちゃいます。以下のファイルをsankei.phpとか名前をつけて保存するだけ。
しかも上の画像ではサムネだけだけど、実は原寸大で普通に読めるレベルの解像度です。

<?php
	$date=$_GET["date"];
	if(strlen($date)==0 OR !checkdate($date[5].$date[6],$date[8].$date[9],$date[0].$date[1].$date[2].$date[3])){
		$url1="http://www.sankei.co.jp/netview/iphone/current_edition.xml";
		$xml1=simplexml_load_file($url1);
		$date=substr($xml1->attributes()->Root,0,10);
	}
	$url2="http://www.sankei.co.jp/netview/iphone/{$date}_i/{$date}_i.xml";
	$xml2=simplexml_load_file($url2);
	foreach($xml2->Pages->Page as $item){
		$html.="<h2 id='p{$item->attributes()->PageNumber}'>{$item->attributes()->PageNumber}面 ({$item->attributes()->Section})</h2><div>";
		for($i=0;$i<=3;$i++){
			for($j=0;$j<=3;$j++){
				$url="http://www.sankei.co.jp/netview/iphone/{$date}_i/";
				$url.="pages_images/".substr($item->attributes()->XMLLocation,10,22);
				$url.="/lv3_{$j}_{$i}.jpg";
				$z=0.7;
				$w=372*$z;
				$h=502*$z;
				$html.="<img src='{$url}' width='{$w}' height='{$h}'>";
			}
		$html.="<br>";
		}
			$html.="</div>";
		$thumb.= "<a href='#p{$item->attributes()->PageNumber}'><img src='http://www.sankei.co.jp/netview/iphone/{$date}_i/{$item->attributes()->ThumbnailURL}' width='182' height='252'></a>";
	}
?>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd">
<html lang="ja">
	<head>
		<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
		<meta http-equiv="Content-Script-Type" content="text/javascript">
		<meta http-equiv="Content-Style-Type" content="text/css">
		<style type="text/css">
			body{margin:10px;}
			div{margin:0;}
			h2{margin:0 10px;border-bottom:1px dotted #000;padding:5px;}
		</style>
		<title>俺専用産経新聞</title>
	</head>
	<body>
	<h1>俺専用産経新聞 </h1>
	<form>日付指定(YYYY_MM_DD形式):<input type="text" value="<?=$date?>" name="date"><input type="submit" value="見る"></form>
	<h2><?=$date?>の目次</h2>
	<?=$thumb?>
	<?=$html?>
	<p><a href="http://d.hatena.ne.jp/konisimple/">konisimple log</a>  <a href="http://twitter.com/koni">@koni</a>
	<p>2010/4/11 04:59ver
	</body>
</html>

注意

  • このスクリプトを悪用しないこと。このファイルを公開領域に置くと、あんまりよくないことがおこる気がします
  • 上のスクリプトは公開することを想定していないのでXSS脆弱性とかは対策してないです。他にも何か脆弱性があるかも。あしからず。
  • 著作権侵害とかの意図は一切ないです。

さすがにこのファイルを公開するのは怖いからしないけど、簡単に再現できちゃうはずです。

*1:下の例はxml処理に10行と表示を整形するのに40行使っている。