【質問】Mac上で流れようとするHTTP通信をブロックするには?

Macで流れるHTTP通信を選択的にブロックしたい、という質問に対して皆さんから返答をいただきました。 ペアレンタルコントロール相当の機能をアプリから制御できないか、というイメージで質問しようとしていたのですが、幾つか興味深い情報も得られたので、記念にまとめます。 ありがとうございます!
4
スミヒロは酒飲み🍶 @sumihiro

@hkato193 何からのリクエストをフィルタリングしようとしてるんですか?iPhoneSDKで言うところのUIWebView、要はWebKitからのリクエストならばdelegateで判断できちゃいますけどそれじゃない?

2010-05-11 20:18:11
Hirohito Kato ⌘ @hkato193

@sumihiro ありがとうございますー。Macで、ペアレンタルコントロールの機能を自作アプリから設定できないかなと思ったのです。けれど同機能のフレームワークは無くて、じゃあ同じコトしているipfwはどうやって実現しているのだろうと(イマココ

2010-05-11 20:23:39
スミヒロは酒飲み🍶 @sumihiro

@hkato193 ほうほう、なるほど。それならばエンジンをNSWebView?かなんかそんなのうろ覚えにしちゃえば簡単かなーとか思ったり。でも生ソケット使うならばそのレベルでやらんとならんかもしれんのですね。

2010-05-11 20:26:46
Hirohito Kato ⌘ @hkato193

@sumihiro パケットを覗き見することなら簡単なんですけどねー。介入して奪おうとすると、やっぱりカーネルのお世話にならないとダメみたいです。

2010-05-11 20:28:37
sakamoto.kazuki @splhack

ペアレンタルコントロールってkernelレベルなのか RT @hkato193: リストに@sumihiroさんと@dictavさんの呟きを追加しました。ipfwの中にあるdummyNetが、どうも目的の機能を達成できそう http://bit.ly/9UikDN

2010-05-12 09:42:13
Hirohito Kato ⌘ @hkato193

@splhack curlも制限されるみたいなので、カーネルでないと無理のようです。ipfwのサイトで説明がありました。 http://bit.ly/cun8si

2010-05-12 09:44:43
sakamoto.kazuki @splhack

どうも /System/Library/PrivateFrameworks/FamilyControls.framework/Versions/A/Resources/webfilterctl でhttp覗くkext起動して

2010-05-12 10:08:32
sakamoto.kazuki @splhack

/System/Library/PrivateFrameworks/WebContentAnalysis.framework/Versions/A/Resources/webfilterproxyd でコンテンツチェックしてるとかかな

2010-05-12 10:08:49
Hirohito Kato ⌘ @hkato193

@splhack おぉ、同じところに!ちなみにwebfilterctlやwebfilterproxydにはどのように辿り着きました?参考にしたいので教えてください

2010-05-12 10:19:19
Hirohito Kato ⌘ @hkato193

@splhack このwebfilterproxydはペアレンタルコントロールを動かしたときのpsの結果で気づいた程度なのです・・・

2010-05-12 10:21:53
sakamoto.kazuki @splhack

@hkato193 あんまり詳しくないですがdummynetってお決まりの機能(帯域制限とか)しかできなくないですか? 任意のuser programと組み合わせるとかはさすがにできないのでペアコンはkextでwebfilterproxydに流してるぽいですね。

2010-05-12 10:24:02
Hirohito Kato ⌘ @hkato193

@splhack むむ、そうなのですか。dummyNetがカーネルに介在する仕組みを調べれば良いかなと思って、概要だけ流し読みしてソースに入っていってしまったのですが、むむ

2010-05-12 10:29:15