digital 千里眼 @abp_jp

アナログな日常とデジタルの接点

JavaScript 無効だと強制リダイレクトさせられる忍者バリアー を Privoxy で回避する方法

HTML 内に埋め込まれる「忍者バリアースクリプト

<script type="text/javascript" src="http://bar1.shinobi.jp/hash.js"></script>
<script type="text/javascript" src="http://bar1.shinobi.jp/s/99/99999.js"></script>
<noscript><a href="http://www.ninja.co.jp/barrier/" target="_blank">アクセス制限</a></noscript>
<noscript><meta http-equiv="refresh" content="0;URL=http://bar1.shinobi.jp/hoge/NoScript?9999999" />
<div style="background-color: #000000;text-align: center;vertical-align: middle;width:100%;height: 100%;margin: -10px;padding: 0px;z-index: 10;position: absolute;">
<div style="color: #ffffff;margin: 0px;padding: 0px;position: absolute;top:50%;left:47%;"><a href="http://www.ninja.co.jp/">NINJA TOOLS</a></div></div></noscript>

問題のリダイレクト部分だけ抜き出すと...

<noscript><meta http-equiv="refresh" content="0;URL=http://bar1.shinobi.jp/hoge/NoScript?9999999" />
(途中省略)
</noscript>
予想されるツッコミ

NoScript 使えばいいじゃん...

ブラウザが Firefox ならその通り。でも、他のブラウザ使うこともあるし...

フィルタ

有効な *.filter に以下を追記します

################################################################################
# ninja-barrier-killer: Remove meta redirection inside NOSCRIPT
#
FILTER: ninja-barrier-killer Remove meta redirection inside NOSCRIPT
s\
@(?:<script\s+type="text/javascript"\s+src="http://bar\d*\.shinobi\.jp/[^"]+"[^>]*></script\s*>\s*)* \
 (?:<noscript[^>]*><a\s+href="http://www\.ninja\.co\.jp/barrier/"\s+target="_blank">[^<]+</a></noscript\s*>\s*)? \
    <noscript[^>]*>\s*<meta\s+http-equiv="refresh"\s+content="0;URL=http://bar\d*\.shinobi\.jp/  \
    .+ \
    </noscript\s*> \
@\
@igsUx
アクション

フィルタの有効範囲を指定します(以下の例では常に「ninja-barrier-killer」フィルタ有効)

{ +filter{ninja-barrier-killer} }
/

効果

diff で確認

このスクリーンショットちょっと古くて、現在のフィルタは「忍者バリアー」のコード全部消してます