doc/session.txt
author Jonas Schäfer <jonas@wielicki.name>
Mon, 10 Jan 2022 18:23:54 +0100
branch0.11
changeset 12185 783056b4e448
parent 8731 41c959c5c84b
permissions -rw-r--r--
util.xml: Do not allow doctypes, comments or processing instructions Yes. This is as bad as it sounds. CVE pending. In Prosody itself, this only affects mod_websocket, which uses util.xml to parse the <open/> frame, thus allowing unauthenticated remote DoS using Billion Laughs. However, third-party modules using util.xml may also be affected by this. This commit installs handlers which disallow the use of doctype declarations and processing instructions without any escape hatch. It, by default, also introduces such a handler for comments, however, there is a way to enable comments nontheless. This is because util.xml is used to parse human-facing data, where comments are generally a desirable feature, and also because comments are generally harmless.
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
55
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
     1
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
     2
Structure of a session:
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
     3
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
     4
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
     5
session {
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
     6
	-- properties --
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
     7
	conn -- the tcp connection
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
     8
	notopen -- true if stream has not been initiated, removed after receiving <stream:steam>
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
     9
	type -- the connection type. Valid values include:
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
    10
			-- "c2s_unauthed" - connection has not been authenticated yet
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
    11
			-- "c2s" - from a local client to the server
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
    12
	username -- the node part of the client's jid (not defined before auth)
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
    13
	host -- the host part of the client's jid (not defined before stream initiation)
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
    14
	resource -- the resource part of the client's full jid (not defined before resource binding)
61
Matthew Wild <mwild1@gmail.com>
parents: 55
diff changeset
    15
	full_jid -- convenience for the above 3 as string in username@host/resource form (not defined before resource binding)
199
eccf66b42bd7 Added resource priority handling, etc
Waqas Hussain <waqas20@gmail.com>
parents: 116
diff changeset
    16
	priority -- the resource priority, default: 0
eccf66b42bd7 Added resource priority handling, etc
Waqas Hussain <waqas20@gmail.com>
parents: 116
diff changeset
    17
	presence -- the last non-directed presence with no type attribute. initially nil. reset to nil on unavailable presence.
8731
41c959c5c84b Fix spelling throughout the codebase [codespell]
Kim Alvefur <zash@zash.se>
parents: 7538
diff changeset
    18
	interested -- true if the resource requested the roster. Interested resources receive roster updates. Initially nil.
116
72e698cdabd7 Updated and fixed session documentation
Waqas Hussain <waqas20@gmail.com>
parents: 115
diff changeset
    19
	roster -- the user's roster. Loaded as soon as the resource is bound (session becomes a connected resource).
55
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
    20
	
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
    21
	-- methods --
4edb942e9dff Some notes of the stanza and session structures
Waqas Hussain <waqas20@gmail.com>
parents:
diff changeset
    22
	send(x) -- converts x to a string, and writes it to the connection
7538
4a3a3098d9bb doc/session: As far as I remember, sessions have had a close method, not disconnect
Kim Alvefur <zash@zash.se>
parents: 199
diff changeset
    23
	close(x) -- Disconnect the user and clean up the session, best call sessionmanager.destroy_session() instead of this in most cases
61
Matthew Wild <mwild1@gmail.com>
parents: 55
diff changeset
    24
}
115
db048883a522 Updated session documentation
Waqas Hussain <waqas20@gmail.com>
parents: 61
diff changeset
    25
116
72e698cdabd7 Updated and fixed session documentation
Waqas Hussain <waqas20@gmail.com>
parents: 115
diff changeset
    26
if session.full_jid (also session.roster and session.resource) then this is a "connected resource"
199
eccf66b42bd7 Added resource priority handling, etc
Waqas Hussain <waqas20@gmail.com>
parents: 116
diff changeset
    27
if session.presence then this is an "available resource" (all available resources are connected resources)
eccf66b42bd7 Added resource priority handling, etc
Waqas Hussain <waqas20@gmail.com>
parents: 116
diff changeset
    28
if session.interested then this is an "interested resource" (all interested resources are connected resources)