OSC2012 Tokyo/Fall    ブラックホール Proxy を作る         不快なサイトを非表示に                                   斉藤 博文                       ...
OSC2012 Tokyo/Fall不快なサイトとか広告とか不快なサイトとか広告とか・・・      とか広告とか・・・  有害と分かっているサイトがある  子供に見せたくない  親が変なサイトに行かないか心配  ⇒ 困っていませんか?日本 G...
OSC2012 Tokyo/Fall一般的な一般的な制限方法  市販ソフトやプロバイダによるブロック  hosts によるブロック  ブラウザのアドオンによるブロック    どれも一長一短  ⇒ どれも一長一短日本 GNU AWK ユーザー会 ...
OSC2012 Tokyo/Fallそこで proxy.pac!  Proxy なんて使ってないよ!  使える関数は FindProxyForURL()  だけ?  shExpMatch() とかオワコン!    でも実際      実際は  ...
OSC2012 Tokyo/Fall127.0.0.1 に返す?  "Not Found" となるのはイヤ  画像が「×」になるのはイヤ  httpd 立てるのは面倒      方法はないか  ⇒ 良い方法はないか?日本 GNU AWK ユーザ...
OSC2012 Tokyo/Fallブラックホール Proxy  どんなリクエストにも同じものを返す    例えば透過画像を返す    例えば空文字を返す  ⇒ それって Proxy ではなく httpd日本 GNU AWK ユーザー会   h...
OSC2012 Tokyo/FallProxy を作る  どうやって作ればいいの?  Proxy って難しそう  マルチスレッドじゃないとね  ⇒ 単一言語だけだと面倒    単一言語だけだと        だけだと面倒日本 GNU AWK ユ...
OSC2012 Tokyo/Fallxinetd と AWK のタッグ  xinetd を使うと簡単    クエリは標準入力    スレッド管理とか不要  ⇒ xinetd 万歳!日本 GNU AWK ユーザー会   http:gauc.no-...
OSC2012 Tokyo/FallAWK 版BEGIN {    RS = "¥r¥n";                         ORS = "¥r¥n";    getline;    print "HTTP/1.0 200 OK...
OSC2012 Tokyo/Fallbash 版read requestprintf   "HTTP/1.0 200 OK¥r¥n"printf   "MIME-Version: 1.0¥r¥n"printf   "Content-Type: ...
OSC2012 Tokyo/Fallxinetd.d/blackhole_proxyservice blackhole_proxy{    socket_type = stream    wait        = no    user    ...
OSC2012 Tokyo/Fall/etc/servicesblackhole_proxy   tcp/81     サービスに   ⇒ サービスに登録日本 GNU AWK ユーザー会           http:gauc.no-ip.or...
OSC2012 Tokyo/Fallproxy.pacfunction FindProxyForURL(url, host) {    // Black List    if (url.match(/なんとか/)                ...
OSC2012 Tokyo/Fall配列版 proxy.pac// Black Listvar black_list = [    "なんとか",    "かんとか",];function FindProxyForURL(url, host) ...
OSC2012 Tokyo/Fallサーバー立サーバー立てられないよ  やりましょう!    試験的に公開    使うかどうかはおまかせ  ⇒ gauc.no-ip.org:81!日本 GNU AWK ユーザー会   http:gauc.no-...
OSC2012 Tokyo/Fallスマホのスマホの 3G でも使いたい        でも使  VPN サーバーを立てれば OK    接続が自動的に切れちゃう欠点    暗号化はバッテリー消費が大きい        サーバーは各自で  ⇒ ...
OSC2012 Tokyo/Fall           だと重JavaScript だと重くない?  どれでも数が多いと重くなる    hosts も同じ    Squid も同じ  ⇒ 必要に応じて加えるのが賢明    必要に じて加えるの...
OSC2012 Tokyo/Fall資料の公開は資料の公開は後でやります  OSC2012 Tokyo/Fall も同じネタ    当日はデモを予定    なので、資料の公開は再来週を予定    ブースに びに来  ⇒ ブースに遊びに来てね日本...
OSC2012 Tokyo/Fallproxy.pac 作るのもめんどい  AD Block Plus のファイルを使う    100 % 変換はできない    でも、単なるテキスト変換  ⇒ これこそ AWK の出番!日本 GNU AWK ユ...
OSC2012 Tokyo/FallAD Block Plus からの変換  OSC2012 Tokyo/Fall で公表?    載せられなかった orz    欲しいですか?    動作確認済み  ⇒ 動作確認済み!日本 GNU AWK ユ...
OSC2012 Tokyo/Fall広告削除の広告削除の例    広告だけ      だけ消  ⇒ 広告だけ消えます日本 GNU AWK ユーザー会   http:gauc.no-ip.org/awk-users-jp/
OSC2012 Tokyo/Fall   での広告削除     広告削除の3G での広告削除の例           でも使  ⇒ iPhone でも使えます日本 GNU AWK ユーザー会   http:gauc.no-ip.org/awk-...
OSC2012 Tokyo/Fallアプリの広告削除のアプリの広告削除の例  ⇒ アプリでも有効です    アプリでも有効です       でも有効日本 GNU AWK ユーザー会   http:gauc.no-ip.org/awk-users...
OSC2012 Tokyo/Fallまとめ  ブラックホールで不快なサイトを排除  proxy.pac は JavaScript  proxy.pac だと皆で使える     清聴ありがとうございました  ⇒ ご清聴ありがとうございました日本 ...
Upcoming SlideShare
Loading in...5
×

日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall

848

Published on

0 Comments
4 Likes
Statistics
Notes
  • Be the first to comment

No Downloads
Views
Total Views
848
On Slideshare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
12
Comments
0
Likes
4
Embeds 0
No embeds

No notes for slide

日本 GNU AWK ユーザー会スライド 2 - OSC2012 Tokyo/Fall

  1. 1. OSC2012 Tokyo/Fall ブラックホール Proxy を作る 不快なサイトを非表示に 斉藤 博文 hi_saito@yk.rim.or.jp @hi_saito日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  2. 2. OSC2012 Tokyo/Fall不快なサイトとか広告とか不快なサイトとか広告とか・・・ とか広告とか・・・ 有害と分かっているサイトがある 子供に見せたくない 親が変なサイトに行かないか心配 ⇒ 困っていませんか?日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  3. 3. OSC2012 Tokyo/Fall一般的な一般的な制限方法 市販ソフトやプロバイダによるブロック hosts によるブロック ブラウザのアドオンによるブロック どれも一長一短 ⇒ どれも一長一短日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  4. 4. OSC2012 Tokyo/Fallそこで proxy.pac! Proxy なんて使ってないよ! 使える関数は FindProxyForURL() だけ? shExpMatch() とかオワコン! でも実際 実際は ⇒ でも実際は JavaScript日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  5. 5. OSC2012 Tokyo/Fall127.0.0.1 に返す? "Not Found" となるのはイヤ 画像が「×」になるのはイヤ httpd 立てるのは面倒 方法はないか ⇒ 良い方法はないか?日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  6. 6. OSC2012 Tokyo/Fallブラックホール Proxy どんなリクエストにも同じものを返す 例えば透過画像を返す 例えば空文字を返す ⇒ それって Proxy ではなく httpd日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  7. 7. OSC2012 Tokyo/FallProxy を作る どうやって作ればいいの? Proxy って難しそう マルチスレッドじゃないとね ⇒ 単一言語だけだと面倒 単一言語だけだと だけだと面倒日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  8. 8. OSC2012 Tokyo/Fallxinetd と AWK のタッグ xinetd を使うと簡単 クエリは標準入力 スレッド管理とか不要 ⇒ xinetd 万歳!日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  9. 9. OSC2012 Tokyo/FallAWK 版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. 10. OSC2012 Tokyo/Fallbash 版read requestprintf "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/
  11. 11. OSC2012 Tokyo/Fallxinetd.d/blackhole_proxyservice blackhole_proxy{ socket_type = stream wait = no user = root server = /bin/blackhole_proxy.awk disable = no} ⇒ xinetd に登録日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  12. 12. OSC2012 Tokyo/Fall/etc/servicesblackhole_proxy tcp/81 サービスに ⇒ サービスに登録日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  13. 13. OSC2012 Tokyo/Fallproxy.pacfunction FindProxyForURL(url, host) { // Black List if (url.match(/なんとか/) || url.match(/かんとか/)) { return "PROXY gauc.no-ip.org:81;"; } return "DIRECT";} ⇒ shExpMatch は捨て捨て!日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  14. 14. OSC2012 Tokyo/Fall配列版 proxy.pac// Black Listvar 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/
  15. 15. OSC2012 Tokyo/Fallサーバー立サーバー立てられないよ やりましょう! 試験的に公開 使うかどうかはおまかせ ⇒ gauc.no-ip.org:81!日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  16. 16. OSC2012 Tokyo/Fallスマホのスマホの 3G でも使いたい でも使 VPN サーバーを立てれば OK 接続が自動的に切れちゃう欠点 暗号化はバッテリー消費が大きい サーバーは各自で ⇒ VPN サーバーは各自で立ててね日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  17. 17. OSC2012 Tokyo/Fall だと重JavaScript だと重くない? どれでも数が多いと重くなる hosts も同じ Squid も同じ ⇒ 必要に応じて加えるのが賢明 必要に じて加えるのが賢明日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  18. 18. OSC2012 Tokyo/Fall資料の公開は資料の公開は後でやります OSC2012 Tokyo/Fall も同じネタ 当日はデモを予定 なので、資料の公開は再来週を予定 ブースに びに来 ⇒ ブースに遊びに来てね日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  19. 19. OSC2012 Tokyo/Fallproxy.pac 作るのもめんどい AD Block Plus のファイルを使う 100 % 変換はできない でも、単なるテキスト変換 ⇒ これこそ AWK の出番!日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  20. 20. OSC2012 Tokyo/FallAD Block Plus からの変換 OSC2012 Tokyo/Fall で公表? 載せられなかった orz 欲しいですか? 動作確認済み ⇒ 動作確認済み!日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  21. 21. OSC2012 Tokyo/Fall広告削除の広告削除の例 広告だけ だけ消 ⇒ 広告だけ消えます日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  22. 22. OSC2012 Tokyo/Fall での広告削除 広告削除の3G での広告削除の例 でも使 ⇒ iPhone でも使えます日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  23. 23. OSC2012 Tokyo/Fallアプリの広告削除のアプリの広告削除の例 ⇒ アプリでも有効です アプリでも有効です でも有効日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  24. 24. OSC2012 Tokyo/Fallまとめ ブラックホールで不快なサイトを排除 proxy.pac は JavaScript proxy.pac だと皆で使える 清聴ありがとうございました ⇒ ご清聴ありがとうございました日本 GNU AWK ユーザー会 http:gauc.no-ip.org/awk-users-jp/
  1. A particular slide catching your eye?

    Clipping is a handy way to collect important slides you want to go back to later.

×