Re: [Standards] request for reviews: XEP-0045 v1.25rc5

2011-08-23 Thread Ralph Meijer
On Mon, 2011-08-22 at 20:30 +0200, Alexander Holler wrote:
 Hello,
 
 [..]
 
 And in my list before, I've forgotten to mention the problem that for 
 requests a form is send by the user to room, which the room then 
 forwards to moderators, and the moderators will see the form with the 
 room as sender.
 I see it as a problem if the MUC-service really forwards such a request 
 without checking every content. And if the service has to check 
 everything of the form, there is no reason why a form must be send by 
 the user, the service could build the form too and something more simple 
 could be used for requests (e.g. something like x xmlns='...muc#request)

I assume this is about 'Registering with a Room'. There are two parts to
this:

  1) The interaction between the occupant and the room to submit the
 request
  2) The interaction between the admin/owner and the room to approve the
 request.

The reason step 1 is done using Data Forms, is that allows a lot of
flexibility in what information is requested from the occupant to
complete the registration. Having a namespace with some predefined
fields limits this tremendously. We had this for in-band account
registration in the very early Jabber days, and is one of the reasons
why Data Forms were invented.

On top of that Field Data Standardization for Data Forms (XEP-0068)
allows for providing a namespace for the the field names. In this case,
the form sent to the admin doesn't have an encapsulating element in a
MUC namespace, and any Jabber client that can handle data forms is able
to provide a UI for this, without any knowledge of the underlying
semantics.

XEP-0068 also provides a way to have fields with names that are entirely
application specific. They MUST start with 'x-'. This is great for
asking for information from the occupant that is not covered by the
predefined fields in XEP-0045 or registered with the XMPP Registrar. 


Step 2 is entirely optional and up to the implementation and/or
configuration of the MUC service:

  9.9 Approving Registration Requests

  If a service does not automatically accept requests to register with a
  room, it MAY provide a way for room admins to approve or deny
  registration requests over XMPP (alternatively, it could provide a web
  interface or some other admin tool). [..]

You appear to want to check the values sent to the room admin/owner, but
why? What attack vector do you believe needs to be addressed?

--
ralphm






Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-23 Thread Sergey Dobrov
On 08/23/2011 09:14 AM, Justin Karneges wrote:
 On Monday, August 22, 2011 05:12:54 AM Sergey Dobrov wrote:
 On 08/19/2011 04:55 AM, Justin Karneges wrote:
 On Thursday, August 18, 2011 05:10:58 AM Goffi wrote:
 - the ability to get missed items between the last time a contact was
 disconnected and the time it reconnect

 I have a protocol flow for reliable pubsub that I've not yet publicized,
 but essentially the idea is to include Result Set Management (XEP-0059)
 UID values in pubsub event notifications.  The client can then notice if
 it missed an item and use iq-get to catch up.

 Maybe this could go in some RSM with PubSub XEP that sorely needs to be
 written.

 Justin

 You forgot that we need to know about item retraction as well as about
 item publishing. The same thing about item update. The possibility to
 get items by date and time is good but it's not cover these problems and
 it's not necessary at this time from my point of view.
 
 The basic solve for item retraction is for the server to keep deletion 
 markers 
 around.  For example the server could clear all content of an item and flag 
 it 
 as deleted, but keep it in the same position in the item list.  This way 
 retracted items can be reported in iq responses.
That would not work because it is equal to the item update with the
blank payload but how could you know that the item was updated?

 
 Unfortunately XEP-0060 never discusses sending retract in an iq response 
 where item normally is, so I am not sure if this would be allowed today 
 without a protocol update.  Alternatively, retractions could be represented 
 within the items themselves.  For example if you were using Atom, an empty 
 entry element may suffice to indicate deletion.
Protocol needs many edits anyway. For example, it very useful to see a
publisher of an item but XEP-60 doesn't give us good explanation how to
determine if pubsub service can send such notifications.

 
 Item publish and update are fine though, right?  Or what are you thinking 
 about 
 them?
Publish is ok since we have RSM. Update has the same problem as retract.
From my point of view, the best solution is node journal but I can't be
sure since that idea was not discussed.

 
 Justin
 


-- 
With best regards,
Sergey Dobrov,
XMPP Developer and JRuDevels.org founder.



Re: [Standards] request for reviews: XEP-0045 v1.25rc5

2011-08-23 Thread Alexander Holler

Am 23.08.2011 11:23, schrieb Ralph Meijer:

On Mon, 2011-08-22 at 20:30 +0200, Alexander Holler wrote:

Hello,

[..]

And in my list before, I've forgotten to mention the problem that for
requests a form is send by the user to room, which the room then
forwards to moderators, and the moderators will see the form with the
room as sender.
I see it as a problem if the MUC-service really forwards such a request
without checking every content. And if the service has to check
everything of the form, there is no reason why a form must be send by
the user, the service could build the form too and something more simple
could be used for requests (e.g. something likex xmlns='...muc#request)


I assume this is about 'Registering with a Room'. There are two parts to
this:


I meant the wording e.g. in 8.6:

As noted in the Requesting Voice section of this document, when a 
service receives a request for voice from an occupant it SHOULD forward 
that request to the room moderator(s).


That 'forward' is what makes me nervous.


You appear to want to check the values sent to the room admin/owner, but
why? What attack vector do you believe needs to be addressed?


One of the first things I first thought about is what happens with 
fields of type 'hidden' in the request. I haven't checked any 
implementation, but I could imagine implementations which really would 
just forward such fields which then might end in the approval form send 
to and back from the moderator. Playing with UTF-stuff in (forwarded) 
labels could allow some funny things too.


Maybe I just take that 'forward' to literal, but I don't like it.

Regards,

Alexander


Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-23 Thread Joe Hildebrand
On 8/21/11 4:45 PM, Justin Karneges
justin-keyword-jabber.093...@affinix.com wrote:

 Good catch, I didn't consider clock skew.  I wonder if the client should just
 specify a timestamp 5-10m in the past instead of having magic at the node
 servers.  Then accurate time queries (made relative to timestamps of other
 items provided by the server) stay optimized.

Seems to me that client writers are more likely to incorrectly think the
server clock is going to be right than the other way around, but I don't
care where the skew is added as long as it's specified which side does it,
so we don't double-skew.

-- 
Joe Hildebrand



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-23 Thread Joe Hildebrand
On 8/22/11 8:14 PM, Justin Karneges
justin-keyword-jabber.093...@affinix.com wrote:

 The basic solve for item retraction is for the server to keep deletion markers
 around.  For example the server could clear all content of an item and flag it
 as deleted, but keep it in the same position in the item list.  This way
 retracted items can be reported in iq responses.
 
 Unfortunately XEP-0060 never discusses sending retract in an iq response
 where item normally is, so I am not sure if this would be allowed today
 without a protocol update.  Alternatively, retractions could be represented
 within the items themselves.  For example if you were using Atom, an empty
 entry element may suffice to indicate deletion.
 
 Item publish and update are fine though, right?  Or what are you thinking
 about 
 them?

I was hoping for something more like atomic-subscribe-and-send-updates as a
subscription option, so that the client's notification handling didn't have
to change.  The server could then just send normal retracts in that flow.
If there was another subscription option that says it's ok to send me
multiple notifications in the same message, the server could intelligently
batch the notifications together for clients that have added the extra
foreach loop.

-- 
Joe Hildebrand



Re: [Standards] Microblogging: XEP-0277 and beyond

2011-08-23 Thread Justin Karneges
On Tuesday, August 23, 2011 04:34:12 AM Sergey Dobrov wrote:
 On 08/23/2011 09:14 AM, Justin Karneges wrote:
  The basic solve for item retraction is for the server to keep deletion
  markers around.  For example the server could clear all content of an
  item and flag it as deleted, but keep it in the same position in the
  item list.  This way retracted items can be reported in iq responses.
 
 That would not work because it is equal to the item update with the
 blank payload but how could you know that the item was updated?

I'm still unsure what you're saying but I'll try to guess: do you mean to say 
that you cannot determine the difference between a publish vs update, unless 
you have a local copy of the item to compare with?  If so, I have found that 
in many situations this does not actually matter.  Can you share a use case?

 From my point of view, the best solution is node journal but I can't be
 sure since that idea was not discussed.

True.  I am trying to avoid this if possible.  My stance is there is nothing 
wrong with using a journal to implement pubsub, but ideally pubsub-using 
protocols should not be so complex that they require a journal-based 
implementation to participate.

Justin