«

»

12月 24

WebProxyを作った(作っている)

2012 Pythonアドベントカレンダー(Webフレームワーク)23日目です
Webフレームワークアドベントカレンダーという事ですが,フロントエンドに使っただけでいいのかな…まぁいいや,気にしないことにします.

ちなみにこの文章は今日のCombConfスライドの文章に言いたかったこと(?)を加えただけです.眠いので許して

今回自分が作成したのは,HTTPS上で動作するセキュリティ保護を目的としたWebProxyです.
HTTPページを公衆無線LANなどの安全でない伝送路で見る際にも,このページを経由させることによって簡単にHTTPSの安全性・正当性確認性を利用できます.

VPNを使えば安全性については解決できますが,特別な知識が必要ですし,モバイルネットワークからでは静的NAPTなどの設定ができないので大変使いづらいです.また,VPNを使用できない機器もありますので,その場合は利用できません.

そこで,SSL/TLSに対応したWebProxyを使用すればこの問題が解決できるのではないかと考えました.

ついでについてきたセキュリティ対策機能として,ブラウザの閲覧履歴からの閲覧先URIの秘匿があります.アクセスごとに新規のページIDを割り当てることにより,そのリンクが入ったページを閲覧したユーザとしてアクセスしないとわからないようになりました.また,そのアクセスにも期限を設けました.

要求環境

  • Django1.4
  • requests
  • django-registration
  • BeautifulSoup4
  • PyDNS

主なモジュール

  • RightDNS(複数のDNSキャッシュサーバから,事前に設定した重みに基づいて正しい可能性が高いIPをアドレスを取得する)
  • AccessData(requestsを使用してページのデータを取得)
  • ValidDat(リンクの付け替え・危険なタグの取り外し)

今実装が完了したのはプロトタイプです.バージョンアップを頑張って行きたいです…

今解決していない問題

  • ログイン画面からのログインができない(admin側からのみできる)(django-registration……)
  • 一部サイトでTooManyRedirectsになる
  • 一部サイトでConnectionError HTTPConnectionPool(host=’False’, port=80): Max retries exceeded with url: / になる
  • どうやって外部にデータ送信するJavaScriptを見分ける?

昨日も夜遅くまで粘ったので眠過ぎます…このくらいが限界…w

そのうちコード公開します

元スライド
(なんか埋め込みできなかった)

追記: 結局あのスライドで言いたかったことは、安全が確実でないキャリアを利用する際にはVPNなりWebProxy(CGIProxyとか)をつかいましょうっていうことです.おわり

Permanent link to this article: http://lga128.nekobaka.net/2012/12/make_webproxy/

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

次の HTMLタグおよび属性が使えます: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

Time limit is exhausted. Please reload the CAPTCHA.