XSF Discussion - 2017-10-12


  1. Flow

    jonasw, +1 for your XHTML-IM mail on standards@

  2. jonasw

    thanks

  3. edhelas

    SamWhited I just saw your mail, kind of agree with it, but be careful as XHTML-IM is also bound to other XEPs

  4. edhelas

    https://xmpp.org/extensions/xep-0231.html#referencing for example

  5. edhelas

    Movim doesn't handle XHTML-IM except for this use case where a BOB image (actually a "sticker") in Movim is sent

  6. jonasw

    oh, so there’s Yet-Another-XEP where images can be "attached" to posts.

  7. jonasw

    (in addition to OOB and SIMS)

  8. edhelas

    yeah but OOB descript a transfer method

  9. edhelas

    *describe

  10. edhelas

    sorry, BOB describe a transfer method

  11. jonasw

    indeed

  12. edhelas

    OOB and SIMS are just metadata

  13. jonasw

    yeah

  14. edhelas

    actually Movim support OOB, BOB and SIMS :D

  15. edhelas

    i'd like to deprecate OOB

  16. jonasw

    in favourof SIMS?

  17. edhelas

    yup

  18. jonasw

    I agree.

  19. edhelas

    https://github.com/siacs/Conversations/issues/2637

  20. jonasw

    hae

  21. jonasw

    daniel, did you misread that issue? I don’t see edhelas mentioning BOB in the issue, but you’re referencing it. Am I missing something there?

  22. pep.

    jonasw: I'd like to see solutions like you suggested indeed, instead of deprecating xhtml-im

  23. jonasw

    voice yourself on the ML :)

  24. pep.

    Will do

  25. jonasw

    and thanks

  26. pep.

    What/how/who would write that reference impl. though? XSF itself doesn't do that kind of stuff right?

  27. zinid

    reference implementation of what?

  28. jonasw

    pep., I wouldn’t say that

  29. jonasw

    there are RFCs which contain a reference implementation (e.g. the Opus Codec)

  30. jonasw

    so I don’t see any strict reason against that

  31. jonasw

    ideally someone from the web development part among the XSF members (looking in the general direction of the movim people) who know JS etc. would take a shot. even more ideally, the XSF would fund a proper audit.

  32. pep.

    zinid: xhtml-im thread on standards@

  33. zinid

    ah

  34. jonasw

    alternatively we could take a look at existing web clients wich get this right, but it appears that there are none :)

  35. zinid

    not interested :)

  36. jonasw

    afk for a while

  37. pep.

    jonasw: right. I would love to see movim implement that at some point

  38. pep.

    Much better than parsing random /commands and still sending that as text

  39. pep.

    But I guess that's the extent of what's possible without that xep

  40. edhelas

    I choose to not implement XHTML-IM actually, it's also to keep the UI clean

  41. edhelas

    and it's heavy to cleanup/process XHTML messages on the volume

  42. pep.

    Xhtml-im* messages

  43. Ge0rG

    I'm absolutely in love with poezio's /code plugin.

  44. zinid

    https://xmpp.org/extensions/xep-0223.html -- is it implemented anywhere?

  45. pep.

    Yep it's really nice. And it doesn't pollute people's screen when they don't do xhtml-im

  46. jonasw

    Ge0rG, /code is annoying in the sense that the sender chooses the colours; they may not fit with the recipients background for examle

  47. edhelas

    zinid used in Movim for the bookmarks and other things

  48. edhelas

    Ge0rG I'm also handling /code in Movim :)

  49. zinid

    edhelas: and how to deal with clients who don't support it?

  50. zinid

    edhelas: the same thing we did with avatars: nothing? :)

  51. edhelas

    zinid for bookmarks ? well I don't

  52. edhelas

    Movim is actually not in sync with Conversations regarding bookmarks

  53. zinid

    and you think it's ok? :)

  54. pep.

    edhelas: not the same way as poezio does. You leave the /code in your body :/

  55. edhelas

    because I choose to not use the old prive-xml XEP

  56. pep.

    And it doesn't make sense on any other clieny

  57. pep.

    Client

  58. edhelas

    pep. poezio put colors on the code using xhtml-im ?

  59. pep.

    Yes

  60. edhelas

    ouch

  61. pep.

    Why?

  62. edhelas

    then no, because it will look ugly

  63. pep.

    Why?

  64. edhelas

    well movim has its own color palette and so

  65. edhelas

    I don't want you to impose your pink and green colors in the Movim UI

  66. pep.

    Sadness

  67. edhelas

    also I can easily colorize the code myself, a simple lib on Movim side can take care of it

  68. jonasw

    edhelas, allowing XHTML-Im but filtering @style seems like a reasonable thing to do

  69. jonasw

    you need to know that it’s code though. XHTML-IM does not allow for a <code/> tag

  70. pep.

    edhelas: also, you're still polluting the body with /code

  71. edhelas

    then XHTML-IM is not a solution for it

  72. jonasw

    edhelas, itym then XHTML-IM should be extended ;-)

  73. edhelas

    pep. I agree as well for /code, we also have /me (even if there's a XEP yeah)

  74. jonasw thinks that the handling of /me is fine.

  75. edhelas

    why ?

  76. edhelas

    having a proper XML tag would be way better

  77. pep.

    jonasw: handling of it is fine in implementations, but it come directly from IRC

  78. edhelas

    <self-quote/>

  79. pep.

    And I agree with edhelas here

  80. jonasw

    yes, it would be better. but it works today, and breaking that would break a lot of clients for little gain

  81. edhelas

    if you don't like /code I understand, but let's be consistent

  82. jonasw

    /code is a client-side feature

  83. jonasw

    the "/code" is never transmitted

  84. pep.

    edhelas: history is never really consistent though. :/

  85. pep.

    Also it's not just about /code

  86. edhelas

    but in general I'm against clients that are forcing the rendering of content to another client

  87. pep.

    It's also about all other possibilities that you're missing without xhtml-im. Or that you (somebody) are trying to reproduce badly

  88. edhelas

    this also applies to Atom publications in Pubsub, actually Movim is heavily filtering the XHTML tags to remove all the style and customization of the articles

  89. Ge0rG

    jonasw: I think that XHTML-IM 2.0 colors should be limited in the same way that the Colors XEP works. The sender defines the hue, and the displaying client is responsible for brightness and saturatio

  90. Ge0rG

    +n

  91. pep.

    edhelas: you should probably detail this statement, I'm sending you messages forcing you to display them. (Unless you ignore them)

  92. edhelas

    I'm ignoring xhtml-im

  93. edhelas

    only use the body tag

  94. edhelas

    XMPP is a transport protocol, like HTTP is transporting HTML

  95. pep.

    Ge0rG: that sounds nice

  96. edhelas

    the forating rules of HTML/CSS/JS is another playground

  97. edhelas

    *formating

  98. edhelas

    to XMPP can tell me if a message contains code, like HTTP tell me if an answer contains text or images

  99. edhelas

    but doesn't tell me how to format thoses

  100. jonasw

    Ge0rG, +1

  101. pep.

    Well xhtml-im doesn't, you choose

  102. jonasw

    I thought about that when I wrote my reply, but I think that’s another battle.

  103. pep.

    edhelas: it's all about semantics

  104. Ge0rG

    jonasw: yeah. But that should work on most neutral backgrounds, and with non-neutral backgrounds the displying client has the option to tune the curves accordingly.

  105. pep.

    XHTML is, really

  106. jonasw

    Ge0rG, yap

  107. jonasw

    pep., +1, which is why I feel we should keep XHTML-Im

  108. pep.

    edhelas: which is why, for example, the /code movim leaves in the body is meaningless to me, I don't know what to do with it if I don't use movim

  109. pep.

    (I agree that the xep could be extended)

  110. edhelas

    sure

  111. jonasw

    edhelas, re bookmarks and movim, does movim use publish-options or otherwise require that the node is configured correctly or would it publish the bookmarks for everyone to read if the pubsub service doesn’t support the correct access model?

  112. edhelas

    jonasw it set the configuration of the node on the first start

  113. edhelas

    set on whitelist actually

  114. jonasw

    mhm

  115. edhelas

    same for other nodes like avatar, vcard4, geoloc, microblog and subscriptions, with their own config

  116. Holger

    XEP-0357 says that the app can include arbitrary payload for the app server using <publish-options/>. XEP-0060 says that a "pubsub service advertising support for publishing options MUST reject publications with unknown fields." So I can't use a standard PubSub service to implement an app server, right?

  117. jonasw

    depends

  118. jonasw

    is "unknown fields" qualified in the XEP?

  119. jonasw

    otherwise, one could argue that the app server understands those proprietary XEP—0357 fields

  120. Kev

    I'm not convinced that pubsub is actually the right mechanism for this anyway.

  121. Holger

    I'm ranting against the PubSub syntax for push notifications since forever :-)

  122. Holger

    It should just use a plain message.

  123. Holger

    jonasw: "Fields and their behaviour MUST be registered with the XMPP Registrar." -- https://xmpp.org/extensions/xep-0060.html#publisher-publish-options

  124. jonasw

    Holger, aww

  125. MattJ

    That's a silly requirement

  126. MattJ

    Like saying you MUST use standards

  127. jonasw

    kind of

  128. Holger

    MattJ: No it lets clients rely on behavior.

  129. Holger

    MattJ: Publish options are being used to make sure a node is not world-readable, for example.

  130. MattJ

    Yes, rejecting unknown fields makes sense

  131. MattJ

    But requiring that every field MUST be registered I'm less sure of

  132. Holger

    If you guys are just saying that a non-standard service may accept the 0357 options then that's what I'm saying.

  133. zinid

    MattJ: if it's not registered, then how to federate?

  134. Holger

    You can't use a standard service but must build your own PubSub thing to create an app server.

  135. Holger

    I think you must do so anyway if you actually need to parse those custom options (such as the secret).

  136. MattJ

    A non-standard service is a non-standard service and doesn't need to follow a MUST in a standard, because it's non-standard

  137. Holger

    So basically I'm back to "don't use PubSub syntax".

  138. MattJ

    zinid, there are cases where federation is not a concern

  139. Holger

    MattJ: Right. So we shouldn't change the standard to also standardize non-standard behavior.

  140. zinid

    MattJ: ok, but in that case you don't give a damn whether there is MUST or not

  141. Holger

    Exactly.

  142. Holger

    <MattJ> Like saying you MUST use standards

  143. Holger

    0060 doesn't do that.

  144. Holger

    It just says "if you follow 0060 and announce publish-options support, you must behave as defined". This only works if only registered options are supported.

  145. Holger

    I.e. if you reject options that aren't registered.

  146. zinid

    > Like saying you MUST use standards I think it's like "you MUST use standards to federate/interop"

  147. MattJ

    Yes, to federate/interop you generally must use standards

  148. MattJ

    But this is a case where you don't, right? :)

  149. Ge0rG

    If people don't bother to use standards, they won't bother more if the standards write that you MUST use standards.

  150. Holger

    MattJ: The idea is that you could use a standard PubSub service.

  151. zinid

    right, so Holger is right: we shouldn't use pubsub for this

  152. Holger

    MattJ: ... and have the app server subscribe to that.

  153. Holger

    MattJ: That PubSub service would be a federating/interoperating 0060 service.

  154. Holger

    MattJ: At least that's how Lance argued back when I argued against PubSub :-)

  155. MattJ

    If the thing doing the publishing knows that the thing accepting the publish supports a certain option in a certain way, it doesn't matter if it's an XSF-blessed standard, is what I'm saying

  156. zinid

    why do we need so complex pubsub, it's kinda relay, what for?

  157. zinid

    I mean why would an app server subscribe to it instead of directly receiving stanzas?

  158. Holger

    MattJ: I'm talking about "the thing accepting the publish".

  159. MattJ

    which has to understand the options, no?

  160. Holger

    MattJ: Lance said he's using PubSub to make it possible for a standard publish service to be that thing.

  161. Holger

    MattJ: I'm saying this won't work.

  162. MattJ

    Example option?

  163. Holger

    MattJ: Yes. The thing has to understand non-standard options.

  164. Holger

    'secret'

  165. MattJ

    Is this something you made up for your implementation, or is it in the XEP?

  166. Holger

    MattJ: Example 13 in XEP-0357.

  167. Holger

    MattJ: It's just an example. 0357 says I may include arbitrary options. 0060 says a standard PubSub service MUST reject them.

  168. MattJ

    Well a simple solution is to register the option ;)

  169. Holger

    No.

  170. Holger

    You want to allow for arbitrary options.

  171. Holger

    ChatSecure uses some other stuff.

  172. MattJ

    I still don't see a problem

  173. Holger

    MattJ: As you said this is really just communication between the app and the non-standard app server.

  174. MattJ

    So, you're using an off-the-shelf pubsub service

  175. Holger

    MattJ: So it just makes no sense to use PubSub for this.

  176. MattJ

    and it doesn't understand your custom option, but what is it meant to do with it?

  177. Holger

    MattJ: That's the next problem, which is why I'm saying this won't work anyway :-)

  178. zinid

    MattJ: but you need to patch the server in order to accept options in order to be passed them to the app server

  179. Holger

    The node subscriber won't see the option.

  180. MattJ

    Right

  181. Holger

    MattJ: In practice the problem is that people try to build an app server on top of the existing PubSub code, because that's what the XEP suggests.

  182. Holger

    MattJ: Then I tell them that this isn't possible because it just looks similar to PubSub but is slightly non-standard.

  183. MattJ

    Ok, I see better now

  184. MattJ

    You're complaining as an XMPP server developer, not as an app server developer

  185. Holger

    Well.

  186. zinid

    what's the difference? :)

  187. Holger

    Sure my immediate issue is that I want to get rid of the support requests :-) But I think the app server developer will also appreciate not running into the problem.

  188. MattJ

    Sure

  189. Holger

    As I said I think the proper fix is just using <message/> syntax. But if for some reason (which?) PubSub is preffered, use some other container for the custom stuff, not <publish-options/>.

  190. Ge0rG

    I also had that thought about "why not messages" when reading Push XEP back then

  191. Holger

    Lance' initial 0357 draft did just that, FWIW ...

  192. Ge0rG

    maybe Lance knows why it was changed, then?

  193. Holger

    https://github.com/legastero/customxeps/blob/gh-pages/extensions/push.md

  194. Ge0rG

    oh, "push token maintenance" is another thing I forgot on the device-identifier mail.

  195. Holger

    <Holger> Lance: What's the reason for using PubSub as opposed to plain messages to talk to the app server, BTW? <Lance> Holger: existing protocol, terminology, and semantics

  196. Holger

    There you go.

  197. zinid

    great

  198. zinid

    we can use pubsub for messages and presences btw

  199. zinid

    because why not? existing protocol!

  200. Holger

    I would say a <message/> offers all those features as well :-)

  201. Ge0rG

    Time to ask on standards@?

  202. Kev

    We can use pubsub syntax for not-default-xep60 services just fine, if we want to (e.g. 369).

  203. Kev

    And I think there's an argument for doing so. But if we go that route we need to be clear that it's not a standard pubsub service you're using.

  204. MattJ

    zinid, https://xmpp.org/extensions/xep-0207.html

  205. zinid

    MattJ: I know :)

  206. Holger

    Kev: Same syntax, slightly different semantics sounds awesome to me.

  207. Ge0rG

    The road to hell is paved with good intentions?

  208. zinid

    especially that in fact we're not reusing *existing* technology, where are using a fork

  209. Alex

    have just seen that many of teh projects are gone on the client/server/library page, because of the renew data. I don't think this is helpful for us as a XMPP community

  210. Holger

    "the renew data"?

  211. Alex

    Holger: https://github.com/xsf/xmpp.org/blob/master/data/README.rst

  212. jonasw

    Alex, anything specific you’re missing?

  213. Alex

    *last_renewed* field

  214. Alex

    jonasw: of course, I think the libraries page was 4x the size before :-)

  215. jonasw

    Alex, sure, but were those maintained?

  216. jonasw

    unmaintained libraries may be worse than no libraries

  217. Alex

    I don't agree on that

  218. Holger

    Alex: Seriously? Someone new to XMPP should wade through an endless list of dead projects?

  219. Alex

    one of the most used JS libraries for example, Strophe

  220. jonasw

    Alex, if strophe.js missed the fact that they need to renew and they’re actively maintained, I think someone should tell them :)

  221. Holger

    (Huh there's an AstraChat server?)

  222. Alex

    Strope is only 1 example, there are many others which are missing

  223. Flow

    it would be nice to get an e-mail that my project is about to disappear

  224. Flow

    but other then that, the new system is far better then listing a bunch of dead projects

  225. Alex

    Sleek is another famous Python XMPP lib which is missing

  226. Flow

    bear ^

  227. Alex

    when I am new to XMPP and browse this pages I don't see many options, which is not positive

  228. jonasw

    huh

  229. jonasw

    Alex, many options and trying three which are unmaintained may be worse?

  230. jonasw

    should’ve watched out for sleek

  231. Alex

    jonasw: I don't think that most of the projects which are gone now were not maintained, but that is just an assumption

  232. Flow

    How about sorting by last update or something like that?

  233. Alex

    we can send a mail to standard, jdev and members and ask teh authors to renew their active projects

  234. jonasw

    sorting by a non-obvious thing seems bad

  235. jonasw

    Alex, we did that

  236. jonasw

    at least jdev I think

  237. Alex

    ok, mnissed that probably :-)

  238. jonasw

    Subject: [jdev] XMPP Software Developers: Action Required

  239. Ge0rG

    Here is a nice one regarding the brokenness of TCP and ICMP on the public Internet. The main focus is fragmentation, but the problems stated also apply to detection of stale TCP connections: https://blog.cloudflare.com/ip-fragmentation-is-broken/

  240. zinid

    Ge0rG: nobody cares, they just invent crap like http2 instead of really fixing things

  241. zinid

    Just like XSF 😂 Because interop

  242. Ge0rG

    it's even worse.

  243. dwd

    Can someone not using Gajim write something with *bold* and /italic/ things in, please?

  244. Ge0rG

    dwd: at your service. Italics doesn't work though.

  245. mathieui

    this is not /italic/ and neither that one is *bold*

  246. Ge0rG

    Damn https://dev.louiz.org/issues/2722.

  247. Ge0rG

    Damn <https://dev.louiz.org/issues/2722>.

  248. dwd

    Ge0rG, Yours came as XHTML-IM, I think.

  249. Ge0rG

    mathieui: "at" was bold.

  250. mathieui

    Ge0rG, yours, yes

  251. dwd

    mathieui, Whereas yours was rendered as italic and bold for me, Markdown-like.

  252. mathieui

    jonasw, err, I would like xmpp: links in href :p

  253. Ge0rG

    dwd: ah, so you were asking for markdown in 'body' and not for XHTML-IM formatted.

  254. dwd

    Ge0rG, Indeed, sorry.

  255. Kev

    I like the idea of markdown in XMPP (I'm not entirely sure that I didn't originate *stuff* in XMPP with Psi), but I really dislike not having a standard. So I think we'd have to actually define a MD standard ourselves (which we pretty much had to with XHTML-IM, of course).

  256. Ge0rG

    so we are reinventing XHTML-IM without XML now?

  257. SamWhited

    I don't especially care what a new thing looks like, but I do like the idea of it being some sort of plain text formatting in <body> as opposed to a separate <fancybody> element or whatever.

  258. Ge0rG

    people will just plug-in their favorite markdown parser and your body texts will end up mutilated and you will still end up being pwned.

  259. SamWhited

    It keeps things simple to have one version of the message. One place to encrypt when doing E2E, no risk of something malicious sending a different plain text / non-plaintext version so that two different clients have tow representations of the conversastion, etc.

  260. Ge0rG

    SamWhited: there is no amount of specification that will prevent developers from doing stupid things.

  261. SamWhited

    Ge0rG: I agree. What's your point?

  262. SamWhited

    Security issues will always exist, so we shouldn't even try to mitigate any of them?

  263. Ge0rG

    SamWhited: XHTML-IM is good as it is.

  264. SamWhited

    Except for the history of insecure implementations.

  265. Ge0rG

    SamWhited: I have a dozen of CVEs for people not reading the Security Considerations of 0280.

  266. Ge0rG

    I want to burn Carbons with fire, but for completely different reasons.

  267. Ge0rG

    SamWhited: by replacing XHTML-IM with markdown, you will keep the exact same security problems.

  268. mathieui

    most markdown implementations even allow raw html right in the plaintext, so I don’t see how that solves the "developer get it wrong" part

  269. Ge0rG

    And probably add some more.

  270. Ge0rG

    what mathieui said.

  271. SamWhited

    Ge0rG: That's why I'm not arguing that we should use markdown.

  272. SamWhited

    Just that we should obsolete XHTML-IM.

  273. mathieui

    yeah, that’s what SamWhited made a point in the thread to keep it about deprecating xhtml-im

  274. mathieui

    yeah, that’s why SamWhited made a point in the thread to keep it about deprecating xhtml-im

  275. Ge0rG

    SamWhited: Council just refused to deprecate 136 despite it not being a replacement/alternative to 313.

  276. SamWhited

    Ge0rG: I know, it made me sad. This is a security issue though, which I think makes it slightly different and more pressing.

  277. Kev

    I don't see a particular need to deprecate XHTML-IM. I think *anything* involving markup being injected into a DOM is going to see people doing stupid things.

  278. Kev

    But I do think that it's woefully inadequate at protecting diligent devs from things they haven't considered.

  279. Ge0rG

    XHTML-IM is not perfect, it's got some ugly warts. But it (or some other markup XEP) has its place, and anything that you can come up with as an alternative will have the same or worse security problems.

  280. SamWhited

    I disagree, it would be quite easy to design a spec with the same level of functionality but where it required active effort on the developers part to introduce the same security problems.

  281. Ge0rG

    SamWhited: maybe you can write that spec up, then?

  282. SamWhited

    It doesn't need to be impossible, it just needs to not be the "default".

  283. Ge0rG

    and then implement it in a bunch of widely-used XMPP clients.

  284. mathieui

    e.g. if we design a new markup language with a secure reference implementation

  285. SamWhited

    Ge0rG: no, I'm not interested. I'm just interested in getting rid of XHTML-IM.

  286. Ge0rG

    And then ask again for deprecation of XHTML-IM?

  287. mathieui

    I remember embedding javascript within my nickname in jappix that would dump account passwords to a MUC

  288. mathieui

    no need for xhtml-im there

  289. SamWhited

    Yah, I've found plenty of those too, they're unrelated though.

  290. Ge0rG

    Yeah, so many places for XSS.

  291. mathieui

    they have the same root issue: the web

  292. SamWhited

    mathieui: If you have a proposal for fixing the root issue, I'm all ears :)

  293. mathieui

    :D

  294. SamWhited

    I would love to fix "the web" :)

  295. Zash

    SamWhited: So what you really wanna do is deprecated teh web! :)

  296. Zash

    Let's do tha!

  297. Alex

    use markdown :-)

  298. Ge0rG

    Yeah, let's approach the W3C with that.

  299. Kev

    SamWhited: I do think that having even a strawman that demonstrates that it's straightforward to write something better would help with those people who think that replacing XHTML-IM with something else is likely to also be easy to carelessly introduce vulns.

  300. SamWhited

    *sigh* yah, maybe you're right.

  301. Ge0rG

    Kev: even if there was a strawman, we still have the wide deployment problem.

  302. Ge0rG

    XHTML-IM is supported over a pretty large client base, as opposed to non-markdown-strawman.

  303. Kev

    Ge0rG: Yes, but one bridge at a time.

  304. Flow

    <message><markup-hint lang="commonmark:1"/>…</message>

  305. SamWhited

    I think you are probably right, that would go a long ways towards convincing some folks, I'm just not sure that I want to put in the work on that. I'm not interested in even having a replacement since I'd probably never implement it myself (not that I think one shouldn't be made, I understand that lots of deployments need basic formatting)

  306. Ge0rG

    Also related: https://blog.plan99.net/its-time-to-kill-the-web-974a9fe80c89

  307. SamWhited

    But I do want to deprecate it, so maybe I need to just waste some time on a thing I'll never use to convince people. I'm torn.

  308. SamWhited

    s/deprecate/obsolete/ (I'm trying to be precise about my language, but I still mix those two up constantly)

  309. Ge0rG

    I want to deprecate GC1.0. And then some.

  310. Kev

    Ge0rG: I think I proposed that onlist as an alternative to 2 or 3 or whatever teh number was, and I don't remember any pushback.

  311. Ge0rG

    Kev: it was brought up at the last-but-one council and got vetoed immediately, IIRC

  312. Ge0rG

    Kev: you also still wanted to provide more alternatives to 1-2-3.

  313. Kev

    Ge0rG: I don't think I did. I think my alternative was to do 2 or 3, whichever the one I said I liked was, and to get rid of gc1.

  314. Ge0rG

    Kev: oh, sorry. I must be misremembering then.

  315. Kev

    And I might misremember, but I don't recall anyone objecting to it in the thread.

  316. Ge0rG

    Maybe because it was TLDR, once again.

  317. Ge0rG

    Kev: oh, there it is: "Georg’s started a worthwhile discussion here, but I’m sure these aren’t the only 3 options we can consider."

  318. Ge0rG

    Kev: you also liked (2), which was the new-iq-type.

  319. Ge0rG

    but I'm interested in the other options before writing a diff to 0045.

  320. Kev

    Ge0rG: Did I not follow-up by saying that I thought that if gc1 was the reason that (3) was better than (2) we should kill gc1?

  321. Kev

    I accept there's a very real possibility that I'm simply going mad.

  322. Ge0rG

    Kev: you ended up discussing with Zash whether we can reliably obtain statistics on "intended GC1 joins" vs "presence updates misunderstood as GC1 joins"

  323. Ge0rG

    which we can't.

  324. Zash

    Why not?

  325. Ge0rG

    Zash: how?

  326. Ge0rG

    Kev: I've long believed that every person participating in this chat room and the related organizations is affected by a certain kind of madness.

  327. Zash

    Ge0rG: Look at presence sent to a MUC. Does it have the <x>? Is the user already in the room? Log that.

  328. Ge0rG

    Zash: and then compare that with <x>-enabled presence from the same full JID in the last X hours?

  329. Kev

    Zash: That's not the question.

  330. Kev

    Zash: That's just listing which presences don't have <x/> it's not telling you if it's a gc1 join or a presence update.

  331. SamWhited

    Sorry, got pulled away… RE GC1.0 I agree, let's deprecate it. I don't think it was vetoed, I think we just decided to get more feedback on list first, but I don't have the minutes in front of me.

  332. Ge0rG

    wow, just got a presence from somebody in the form of "phone." + [68 characters that look like base64, including slashes]

  333. Ge0rG

    the madness is rising.

  334. Ge0rG

    SamWhited: yeah, the final decision was to get some list discussion, but there were some proponents of keeping GC1, surprisingly

  335. Zash

    Madness

  336. Zash

    http://www.youtube.com/watch?v=QH7fIkV8nsk

  337. jonasw

    SamWhited, you quoted me rather unfairly on the ML. I won’t point it out there, because I don’t believe you did that on purpose.

  338. SamWhited

    jonasw: Did I? Sorry about that

  339. SamWhited

    I removed the extra, but I didn't think I took you out of context or anything

  340. jonasw

    you removed the part where I said "plus providing a reference implementation"

  341. SamWhited

    Yah, I know, I wasn't responding to that part

  342. SamWhited

    It's unrelated to further restricting the subset of HTML involved

  343. jonasw

    not entirely, it’ll simplify the reference implementation.

  344. SamWhited

    ah, I see, restricting the HTML was about making the reference implementation simpler? Yah, I misunderstood what you meant

  345. SamWhited

    Either way, I don't think a reference implementation helps either

  346. jonasw

    all implementations, but also the reference implementation, because I agree that simply changing the spec won’t solve a thing

  347. jonasw

    I strongly think so

  348. SamWhited

    I think adding a reference implementation won't solve a thing (although I'm certainly not against it, if we can have an implementation that we can more or less guarantee is secure, maybe at least a few things will use it and not be broken out of the box)

  349. SamWhited

    But not everyone will use it, so I don't think it really helps

  350. jonasw

    if we link the reference implementation prominently in the XEP and doesn’t have any non-DOM dependencies, I think new implementations certainly will use it.

  351. SamWhited

    Yah, some will and that's nice, but not all will

  352. jonasw

    meh

  353. SamWhited

    It doesn't really solve the problem, just puts a bandaid on it for a few implementations (which isn't bad, and I think you should totally do it, but I think we should still obsolete the spec either way)

  354. Ge0rG

    There are so many places to inject code into the DOM of a JavaScript XMPP client, XHTML-IM is just one of them.

  355. jonasw

    see, my main issue is that I really don’t want to see that we use plain text markup when we have the opportunity to use structured markup (be it XHTML-IM or anything else)

  356. SamWhited

    Ge0rG: yes… again I don't understand your point though: security is hard, so let's not fix any of the problems?

  357. SamWhited

    Other places where DOM injection is possible aren't related to this discussion

  358. jonasw

    I think that providing a reference implementation is the best we can and should do.

  359. SamWhited

    jonasw: I'm not 100% sure but I *think* I agree with you. Deprecating XHTML-IM doesn't mean we're going to use plain text markup in the <body> though.

  360. Ge0rG

    SamWhited: I'm just saying that security-ignorant developers will keep writing vulnerable XMPP clients, with or without XHTML-IM

  361. jonasw

    SamWhited, what else are we going to do? The alternative will be to reinvent XHTML-IM.

  362. SamWhited

    Ge0rG: Yes, I agree. I don't see what that has to do with anything though.

  363. SamWhited

    jonasw: Yes, reinvent it, but reinvent it in such a way that it's not HTML.

  364. Ge0rG

    SamWhited: I think my slightly exaggerated point is: you can't make webchat more secure by removing XHTML-IM.

  365. jonasw

    We shouldn’t sacrifice something that indeed works, can be made secure with reasonable effort (if we abolish @style, which we totally should do), to make in total only a few implementations transition from not-secure to secure (only a few will transition by obsoleting XHTML-IM, because many will have other XSS issues)

  366. jonasw

    SamWhited, people will simply patch tag names and embed it in the DOM.

  367. jonasw

    if it’s more complicated than that, people will not implement it.

  368. jonasw

    (and if people simply embed an XML tree into the dom, havoc will be wreaked)

  369. SamWhited

    jonasw: Your'e assuming @style is the only problem. That's not the problem that I've seen, the problem that I've seen won't be solved by further restricting what HTML is allowed.

  370. Ge0rG

    Maybe we should provide an XSS bot that will join your MUC with an evil name, post evil messages and change the subject to some <script> tag?

  371. SamWhited

    People are allowing <script> tags and the like, it doesn't matter how much more stuff you take out, they'll still just allow <script> tags.

  372. jonasw

    SamWhited, I’m keeping to mention @style, because @style is really really hard to fix.

  373. jonasw

    the other parts are more or less a piece of cake.

  374. SamWhited

    jonasw: Yah, I agree with you we should take it out. I just don't agree with you that it would solve anything.

  375. Ge0rG

    SamWhited: the problem you are trying to fix is ignorant developers?

  376. SamWhited

    Ge0rG: "fix" is the wrong word, but essentially yes. We can't "solve" all the security problems, we can never stop developers from doing a dumb thing and allowing a <script> tag. We *can* make it harder to do that by default.

  377. jonasw

    SamWhited, with @style, it is entirely unrealistic that any implementation is safe, because nobody will parse CSS.

  378. SamWhited

    jonasw: I'm not arguing against that. By all means, remove style.

  379. SamWhited

    But that's another orthogonal problem.

  380. jonasw

    only if you’re set on obsoleting XHTML-IM, which I’m not ;-).

  381. SamWhited

    It's orthogonal either way. The problem that I've seen, over and over again, is that people say "it's HTML, so take it out of the <html> element and stick it in the dom" or they have some subtle bug in how they do their whitelisting that allows it to be bypassed. Removing style won't solve either of those things (though again, I'm not disagreeing, it's something we should do to help existing implementations)

  382. jonasw

    okay, I see your point.

  383. Link Mauve

    « 08:39:27 jonasw> you need to know that it’s code though. XHTML-IM does not allow for a <code/> tag », it totally does, fyi.

  384. Link Mauve

    I should totally improve poezio’s XHTML-IM module to run pygment on incoming code!

  385. Zash

    I'm almost surprised that you haven't already

  386. mathieui

    since 2003!

  387. mathieui

    we’re way behind

  388. mathieui

    note to self: DoS Link Mauve by pasting perl code in MUCs

  389. Zash

    Does <code> not have a language attr tho?

  390. Link Mauve

    mathieui, you know you don’t need anything fancy to DoS my server. :p

  391. mathieui

    right.

  392. Link Mauve

    Zash, hmm, maybe I’d have to write a XEP extending 0071, maybe with a standardised class attribute or something?

  393. Zash

    Maybe you already discussed this, but what about all the ways CSS can invoke more resources?

  394. Zash

    Link Mauve: Standardized classes would sorta make sense I guess

  395. Zash

    Eg like vcard thing

  396. mathieui

    yeah, a class preset would actually solve all the portability issues of 0071, along with solving the potential for CSS abuse

  397. Zash

    Way past brain-works-o'clock

  398. Zash

    microformats!

  399. Link Mauve

    Zash, don’t say that, I just woke up for the fourth time of the day!

  400. mathieui

    yes but you didn’t wake up yesterday, so it evens out

  401. Link Mauve

    True.

  402. Zash

    I haven't woken up today.

  403. Zash

    MMmm GMT+2 jokes ftw

  404. Zash makes xep-0071.epub and dumps to e-ink-thingy for later reading

  405. Zash

    Uh, I should make an email-to-epub thing