/
335.txt
56 lines (41 loc) · 3.41 KB
/
335.txt
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
* 仕様書
[REFS[
- [1] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#handler-websocket-onmessage>
- [3] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#authors>
- [7] [CITE@en-GB-x-hixie[HTML Standard]] ([TIME[2015-05-06 10:42:35 +09:00]] 版) <https://html.spec.whatwg.org/#user-agents>
- [9] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2016-12-05 14:51:53 +09:00]]) <https://html.spec.whatwg.org/#handler-messageport-onmessage>
- [14] [CITE@en-US-x-hixie[HTML Standard]] ([TIME[2016-12-06 07:17:59 +09:00]]) <https://html.spec.whatwg.org/#handler-broadcastchannel-onmessage>
]REFS]
* WebSocket
[2] [[WebSocket]] に関する [CODE(DOMe)@en[[[message]]]] [[イベント]] [SRC[>>1]]
は、[[WebSocketメッセージを受信]]した時に[[発火]]されます。
* [CODE(DOMm)@en[postMessage]]
[4] [CODE(DOMm)@en[[[postMessage]]]] からの[[メッセージ]]を受信する側の[[著者]]は、
悪意のある[[著者]]がこれを悪用しないよう、細心の注意を払う必要があります [SRC[>>3]]。
[5] [[著者]]は、 [CODE(DOMa)@en[[[origin]]]] [[IDL属性]]の値を検査して、
正当な[[起源]]から受信したメッセージであることを確かめる[['''べきです''']]。
[[著者]]は、期待通りの形式のメッセージであることも検査する[['''べきです''']]。 [SRC[>>3]]
[6] 攻撃者が多数の[[メッセージ]]を送信し、沢山の[[計算]]を要させたり、
大量の[[通信]]を行わせたりするような [[DoS攻撃]]の可能性も考慮する[RUBYB[べき]@en[encouraged]]です。
時間当たりの最大処理量を制限するなど対策を採る[RUBYB[べきかもしれません]@en[encouraged]]。 [SRC[>>3]]
[8] [[利用者エージェント]]も、適当な実装のサイトを [[DoS攻撃]]から守るため、
最大処理量を制限することを検討する[RUBYB[べきかもしれません]@en[encouraged]] [SRC[>>7]]。
* [CODE(DOMi)@en[MessagePort]] インターフェイス [CODE(DOMa)@en[onmessage]] 属性
[10] [CODE(DOMi)@en[MessagePort]] [[インターフェイス]]の
[DFN[[CODE(DOMa)@en[onmessage]]]] [[IDL属性]]は、
[CODE(DOMe)@en[message][onmessage]] [[イベント]]の[[イベントハンドラーIDL属性]]です
[SRC[>>9]]。
[11] その[[設定器]]は、通常の動作に''加えて''、次のようにしなければ[MUST[なりません]]
[SRC[>>9]]。
[FIG(steps)[
= [12] [[文脈オブジェクト]]の[F[[[ポートメッセージキュー]]の状態]]が[[無効]]なら、
== [13] [[文脈オブジェクト]]の[[ポートメッセージキューの有効化]]を実行します。
]FIG]
* [CODE(DOMi)@en[BroadcastChannel]] インターフェイス [CODE(DOMa)@en[onmessage]] 属性
[15] [CODE(DOMi)@en[BroadcastChannel]] [[インターフェイス]]の
[DFN[[CODE(DOMa)@en[onmessage]]]] [[IDL属性]]は、
[CODE(DOMe)@en[message][onmessage]] [[イベント]]の[[イベントハンドラーIDL属性]]です
[SRC[>>14]]。
[16] [CODE(DOMi)@en[MessagePort]] とは違って、こちらの [[IDL属性]]に特殊な動作はありません。
ただし [CODE(DOMe)@en[message][onmessage]] [[イベントリスナー]]の登録と削除に特殊な動作が規定されています。
;; [CODE(DOMi)@en[BroadcastChannel]]、[[イベントリスナー]]参照。