- WSOFT Docs
-
ブログ
- ブログ
- このサイトについて
- WSOFT AdventWeek 2022のお知らせ
- DiscordのBotは多重人格の夢を見るか?
- WSOFTDocsのエクスペリエンスの改善
- WSOFTのアイコンを入手する
- WSOFTDocs へようこそ
- WSOFTの製品の一覧
- wsoft.wsへのドメイン移行に関する情報
- WSOFTのロゴ変更に関する情報
- WSOFTのドキュメントの WSOFT Docs への移行に関する情報
- Raspberry Pi初代やZeroでAliceScriptを実行する
- Losetta0.9.16に更新した後のエラーを直す
- WSOFT AdventWeekへようこそ
- たわいもない話1
- たわいもない話2
- 共同作成ガイド
-
製品
- 製品
- PCMX
- WSOFTアカウント
- AliceScript
- AliceScript
- 謝辞
- ダウンロード
- Alice(キャラクター)
- AliceScriptのツアー
- Wikiの概要
- APIブラウザー
- APIブラウザー
- Alice
- break
- continue
- delay
- do
- exit
- for
- foreach
- function
- if
- import
- include
- lock
- read
- return
- string_format
- switch
- using
- while
- write
- Diagnostics
- Environment
- env_clr_version
- env_commandLine
- env_commandLineArgs
- env_set_exitCode
- env_expand_environmentVariables
- env_get_environmentVariable
- env_hasShutdownStarted
- env_impl_architecture
- env_impl_location
- env_impl_name
- env_impl_target
- env_impl_version
- env_Is64BitOperatingSystem
- env_Is64BitProcess
- env_MachineName
- env_NewLine
- env_os_platform
- env_os_version
- env_set_environmentVariable
- Exception
- Interop
- Interpreter
- gc_collect
- gc_collectAfterExecute
- gc_getTotalMemory
- interpreter_append_output
- interpreter_append_output
- interpreter_consts
- interpreter_namespaces
- interpreter_getVariable
- interpreter_globalVariables
- interpreter_name
- interpreter_nameexists
- interpreter_namespaces
- interpreter_process
- interpreter_processfile
- interpreter_reset_variables
- Type
- IO
- directory_create
- directory_create_symbolicLink
- directory_current
- directory_delete
- directory_exists
- file_append_text
- file_copy
- file_decrypt
- file_delete
- file_encrypt
- file_exists
- file_move
- file_read_charCode
- file_read_codePage
- file_read_data
- file_read_decrypt
- file_read_text
- file_replace
- file_write_data
- file_write_encrypt
- file_write_text
- Math
- math_abs
- math_acos
- math_acosh
- math_asinh
- math_atan
- math_atan2
- math_atanh
- math_bitdecrement
- math_bitincrement
- math_cbrt
- math_celling
- math_clamp
- math_copySign
- math_cos
- math_cosh
- math_E
- math_epsilon
- math_exp
- math_factorial
- math_floor
- math_fusedmultiplyadd
- math_infinity
- math_isFinite
- math_isInfinity
- math_isNaN
- math_isNegativeInfinity
- math_isNormal
- math_isPositiveInfinity
- math_isPrime
- math_isSubNormal
- math_log
- math_max
- math_maxValue
- math_min
- math_minValue
- math_NaN
- math_negativeInfinity
- math_pi
- math_pow
- math_round
- math_sin
- math_sinh
- math_sqrt
- math_tan
- math_tanh
- math_tau
- math_truncate
- Net
- Parsing
- Random
- Security
- Threading
- Array
- Bool
- Bytes
- Delegate
- None
- Number
- String
- string
- CompareTo
- Contains
- EndsWith
- Equals
- Format
- GetBytes
- Indent
- IndexOf
- Insert
- IsEmptyOrNull
- IsEmptyOrWhiteSpace
- IsNormalized
- Join
- LastIndexOf
- Normalize
- PadCenter
- PadLeft
- PadRight
- Remove
- RemoveAt
- Repeat
- Replace
- ReplaceLineEndings
- Split
- SplitLines
- StartsWith
- SubString
- ToLower
- ToLowerInvariant
- ToUpper
- ToUpperInvariant
- Trim
- Trim
- TrimStart
- Variable
- Void
- 変更履歴
- 例外
- 例外
- 0x000 NONE
- 0x001 COULDNT_FIND_FUNCTION
- 0x003 INVALID_OPERAND
- 0x004 COULDNT_FIND_VARIABLE
- 0x005 ITS_RESERVED_NAME
- 0x006 ILLEGAL_IDENTIFIER
- 0x009 INCOMPLETE_ARGUMENTS
- 0x01a COULDNT_ADD_PARAMETERS_AFTER_PARMS_KEYWORD
- 0x020 COULDNT_EXECUTE_BLOCK
- 0x021 NEED_BRACKETS
- 0x022 UNNEED_TO_BRACKETS
- 0x04a CASE_BLOCK_MISSING_BREAK
- 0x04b UNKNOWN_ESCAPE_CHAR
- 0x04c ASSERTION_ERROR
- 基本
- Alice in Discord
- 相互運用
- チュートリアル
- ダウンロードセンター
- ほめて.ws
- アイコンメーカー
- WSOFTScript
- Unidet
- WebSailing
- WebSailing
- 謝辞
- APIブラウザー
- 更新履歴
- WebSailingNXの更新情報
- NX 81
- NX 83
- NX 104.1
- NX 105
- NX 105.1
- NX 106
- NX 106.1
- NX 106.2
- NX 107
- NX 107.1
- NX 107.2
- NX 108
- NX 109
- NX 110
- NX 110.1
- NX 110.2
- NX 110.3
- NX 111
- NX 111.1
- NX 112
- NX 114
- NX 114.1
- NX 115
- NX 115.1
- NX 116
- NX 116.1
- NX 117
- NX 117.1
- NX 118
- NX 119
- NX 119.1
- NX 120
- NX 120.1
- NX 120.2
- NX 120.3
- NX 120.4
- NX 121
- NX 121.1
- GL
- NX(レガシー)
- WSPlugin
- チュートリアル
- WSNET
- WSTodon
- WSTube
- Lantana
- 法的資料
-
あみうは
- あみうは
- 新学期が始まりました!
- 恋の相談
- プチコン3号で作ったのは?
- オススメの文庫
- マクドナルド最高!
- ios11β レビュー
- あみうはの歌について
- ついに自分のソフトウェアのホームページができました。
- Windowsタブレットをリセットして起動しなくなった人のために
- PCレスで YouTubeの曲を携帯mp3プレイヤーで聴く(iPhone)
- 食べられないラズベリーパイを買いました。(1)
- ラズベリーパイの下ごしらえ(2)
- 小説始めます~
- 女子がキュンとくる行動ベスト3!!
- MacとWindowsについてあまり知られていない事
- macでできる裏技
- ドコモの格安スマホ「MONO」買っちゃいました☆いい所をいくつか
- 『レビュー』iPhone6sを1年間使い続けて思ったこと
- iPhoneの拡大鏡に関するバクを発見しました。
- iPhoneで圧縮ファイルを作成したり解凍する方法
- Obscura2が今だけ無料!使い方まとめ
- Windowsタブレットがブルースクリーンになった時のメモ
- お知らせ
- 放送部マニュアル
WSTubeの概要
この記事では、WSOFTがかつて提供していたWebサービスである、WSTubeについて説明します。
WSTubeは、私が中学生のころに開発し運用していた強力なYouTube視聴環境です。WSTubeは某校パソコン部における学術目的のための研究プロジェクトとして開発された製品です。
極めて強力な視聴可能性
ファイアウォールやプロキシを通過
WSTubeの重要な特徴のひとつとして、ファイアウォール、プロキシサーバーやNATなどの制限システムをうまくすり抜けることができる機能があります。たとえばプロキシサーバーは、大学などの公共の場でのネットワークに導入されています。
現代のコンピューターットワークでは、セキュリティ上の理由から内部ネットワークと外部ネットワークを分離するためのネットワークデバイスが導入されていることが一般的です。また、大学や小中高校などの教育機関のネットワークでは、外部からの侵入を防ぐとともに児童や生徒、学生が学習上望ましくないと判断されるサイトへのアクセスを遮断することが往々にしてあります。
YouTubeなどの動画サイトはこの規制の対象とされることがよくあります。規制の内容についてここで細かく触れることはしませんが、この規制は大学等が指定したDNSサーバーを使用させ、youtube.com
などのサイトをDNS解決できないようにするとういう方法がとられます。この規制を回避するためにDNSサーバーを変更しようと試みても、内部から外部へのUDPパケットはそもそも遮断されていたり、TCPパケットも80
ポートと443
ポートへの通信のみ許可されていたりします。よって従来のようなIPsec、L2TPなどのVPN技術もここでは使用できません。SoftEtherやOpenVPNなど443
ポートを使用するVPNを使用して制限を回避することもできますが、いずれの方法でもVPNクライアントソフトの導入が不可欠であり、それらはOSのネットワーク層になんらかのハックを仕掛けるため管理者権限のない一般ユーザーが使用することは困難です。
動画をユーザーに提供するためにHTTP/Sプロトコルを使用
WSTubeは動画をユーザーに提供するためにHTTP/Sプロトコルを使用します。しかし、動画が提供されるのはyoutube.com
からではありません。任意のWSTubeサーバーが導入されたサーバーから動画を取得します。WSTubeサーバーはYouTubeからの動画の取得をユーザーに代わって行うことで、ユーザーはYouTubeにアクセスせずとも動画を視聴できるのです。
クロスプラットフォームサポート
WSTubeサーバーはHTTP/SベースのWebサーバーで動作するため、H264動画が再生可能なブラウザであればどの環境でもWSTubeを使用できます。この機能により、たとえ環境が3DSであれ、WiiUであれ、YouTubeの動画を視聴できるのです。
クライアントアプリ
Windowsではクライアントアプリである、WSTubeMODを開発しています。これを使用すれば、ユーザーはファイルをダブルクリックするだけでWSTubeにアクセスでき、動画のダウンロードや変換なども行えます。このプログラムは.NETFramework4.5で開発されており、現代の教育現場で普及しているWindows 8.1以降が搭載されているOSで前提条件を意識せずに導入できます。
セキュリティと易管理性
中間者攻撃の防止
あなたは、結局内部ネットワークにYouTube動画が流れてくるのだからいつかはそれが検出されるのではないかという疑問を持つかもしれません。実際、HTTP通信はネットワーク管理者からどのようなパケットが行きかっているかがすべて把握できます。しかし、WSTubeサーバーがHTTPS通信をサポートしていればその心配はありません。あなたとWSTubeサーバーとの間の通信内容は誰も見ることができないのです。(もちろん、中にはHTTPS通信を解除して検閲することのできるシステムもありますが、そのようなシステムが導入されている環境は非常に稀です。
アカウント
WSOFTが提供するWSTubeシステムは、WSOFTアカウントをログイン手段に採用していますが、さまざまなログイン手法をお好みで導入できるのもWSTubeの強みです。アカウントはすべてハッシュ化して保存され、履歴なども管理者とそのユーザーからのみアクセスできます。また、アカウントの使用を強制することによって、どのユーザーがWSTubeを使用できるかを把握できます。
ユーザーとロール
すべてのユーザーにはロールが付与されており、いずれのロールが付与されているかによって、「視聴可能」であるか、「管理者」であるいかあるいは「視聴不能」であるかを制御できます。
有害な動画のフィルタリング
簡易動画フィルタリング機能により、検索画面で有害な動画を視聴する可能性が大きく下がります。また、クライアントアプリを導入すれば、直接IDを指定して動画を視聴しようとした際にもフィルタリングがかかります。
動画待機行列を溢れさせる攻撃(Dos攻撃)の防止
各ユーザーに応じて同時に動画待機行列に並ばせることのできる動画の合計数を制限できます。これによって悪質な使用を制限できます。誰がどのくらい占有しているかについての統計は、ミッションコントロールセンターからかくにんできます。
ログ保存機能
管理者は、ユーザーがどのような検索キーワードを使用して、どのような動画にたどり着き視聴したかを確認できます。このログはユーザーごとに保存され、いつでも確認できるようになっています。
ミッションコントロールセンター
ミッションコントロールセンターでは、ユーザーがWSTube上でどのような行動をしているかを個別監視し、必要に応じて制限を課す機能を提供します。 管理者は複数人を指定でき、必要に応じてそれを変更できます。