URLリストに登録されていないサイトのJavaScriptを無効にするProxomitronフィルタ
動作内容は以下の通り。
- script要素を削除 (後方にnoscript要素があれば、noscript要素を外して展開する)
- a要素/href属性で指定されたjavascriptスキームを無効なスキーム「killjavascript」に置換
- 要素埋め込み型のon****属性を無効な属性「killon****」に置換
[Patterns]
Name = "Disable JavaScript NoSafeList [2007/09/24] test2"
Active = TRUE
URL = "$TYPE(htm)(^$LST(JSEnable))"
Limit = 2048
Match = "$NEST(<script[ >],</script>)"
"$SET(#=<script type='comment'> Disable JavaScript NoSafeList </script>)"
"( $NEST(<noscript>,\0,</noscript>)"
"$SET(#=\r\n<div class='view_noscript'>\0</div>)"
"|)|"
"(<a\s[^>]++href=)\#$AVQ((["']|)\#(javascript:*)\0)(^(^[ >]))"
"$SET(#=kill\0)|"
"(<[a-z]+{1,*}[0-9]+(^(^\s))[^>]++\s)\#(^(^on"
"(abort|blur|change|click|dblclick|dragdrop|error|focus|key(down|press|up)|load|"
"mouse(down|move|out|over|up)|move|reset|resize|select|submit|unload)=))"
"$SET(#=kill)"
Replace = "\@"
今回は技術的な興味からフィルタを作成しましたが、JavaScriptの有効/無効はブラウザ側で制御した方が確実だと思います。
これ以外の方法でJavaScriptが使われたとしても、ブラウザがJavaScriptを許可しなければ無効となるので。
ラベル: Proxomitron, フィルタ