More Related Content Similar to 日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall Similar to 日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall (20) 日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall1. OSC2012 Tokyo/Fall
ブラックホール Proxy を作る
不快なサイトを非表示に
斉藤 博文
hi_saito@yk.rim.or.jp
@hi_saito
日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
4. OSC2012 Tokyo/Fall
そこで proxy.pac!
Proxy なんて使ってないよ!
使える関数は FindProxyForURL()
だけ?
shExpMatch() とかオワコン!
でも実際
実際は
⇒ でも実際は JavaScript
日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
7. OSC2012 Tokyo/Fall
Proxy を作る
どうやって作ればいいの?
Proxy って難しそう
マルチスレッドじゃないとね
⇒ 単一言語だけだと面倒
単一言語だけだと
だけだと面倒
日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
8. OSC2012 Tokyo/Fall
xinetd と AWK のタッグ
xinetd を使うと簡単
クエリは標準入力
スレッド管理とか不要
⇒ xinetd 万歳!
日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
9. OSC2012 Tokyo/Fall
AWK 版
BEGIN {
RS = "¥r¥n"; ORS = "¥r¥n";
getline;
print "HTTP/1.0 200 OK"; print "MIME-Version: 1.0";
print "Content-Type: image/gif"; print "";
printf("¥x47¥x49¥x46¥x38¥x39¥x61¥x01¥x00" ¥
"¥x01¥x00¥xf0¥x00¥x00¥xff¥xff¥xff" ¥
"¥x00¥x00¥x00¥x21¥xf9¥x04¥x01¥x00" ¥
"¥x00¥x00¥x00¥x2c¥x00¥x00¥x00¥x00" ¥
"¥x01¥x00¥x01¥x00¥x00¥x02¥x02¥x44" ¥
"¥x01¥x00¥x3b¥x00");
}
⇒ なんとこれだけ!
日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
10. OSC2012 Tokyo/Fall
bash 版
read request
printf "HTTP/1.0 200 OK¥r¥n"
printf "MIME-Version: 1.0¥r¥n"
printf "Content-Type: image/gif¥r¥n"
printf "¥r¥n"
printf "¥x47¥x49¥x46¥x38¥x39¥x61¥x01¥x00" ¥
"¥x01¥x00¥xf0¥x00¥x00¥xff¥xff¥xff" ¥
"¥x00¥x00¥x00¥x21¥xf9¥x04¥x01¥x00" ¥
"¥x00¥x00¥x00¥x2c¥x00¥x00¥x00¥x00" ¥
"¥x01¥x00¥x01¥x00¥x00¥x02¥x02¥x44" ¥
"¥x01¥x00¥x3b¥x00"
⇒ 動作未確認
日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
14. OSC2012 Tokyo/Fall
配列版 proxy.pac
// Black List
var black_list = [
"なんとか",
"かんとか",
];
function FindProxyForURL(url, host) {
for (var i in black_list) {
if (url.match(black_list[i]))
return "PROXY gauc.no-ip.org:81;";
}
return "DIRECT";
}
⇒ 配列使ってメンテしやすく
配列使ってメンテしやすく
ってメンテ
日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
16. OSC2012 Tokyo/Fall
スマホの
スマホの 3G でも使いたい
でも使
VPN サーバーを立てれば OK
接続が自動的に切れちゃう欠点
暗号化はバッテリー消費が大きい
サーバーは各自で
⇒ VPN サーバーは各自で立ててね
日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
17. OSC2012 Tokyo/Fall
だと重
JavaScript だと重くない?
どれでも数が多いと重くなる
hosts も同じ
Squid も同じ
⇒ 必要に応じて加えるのが賢明
必要に じて加えるのが賢明
日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
20. OSC2012 Tokyo/Fall
AD Block Plus からの変換
OSC2012 Tokyo/Fall で公表?
載せられなかった orz
欲しいですか?
動作確認済み
⇒ 動作確認済み!
日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
22. OSC2012 Tokyo/Fall
での広告削除
広告削除の
3G での広告削除の例
でも使
⇒ iPhone でも使えます
日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
24. OSC2012 Tokyo/Fall
まとめ
ブラックホールで不快なサイトを排除
proxy.pac は JavaScript
proxy.pac だと皆で使える
清聴ありがとうございました
⇒ ご清聴ありがとうございました
日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/