[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Accidental and intentional atom:id collisions (was Re: Consensus call on last raft of issues)
On Wednesday, May 18, 2005, at 09:12 AM, Henry Story wrote:
I supposed the surest way to make it impossible to fake the id, is to
specify that
by dereferencing the id and doing a GET (whatever the correct method
of doing that for the
protocol happens to be) one should be able to retrieve the entry.
The unlikelihood of anyone actually retrieving each entry to verify
that it's accurate would make this method only trivially effective.
An oddity this language introduces is that if the entries don't
appear in the same Atom Feed Document, they apparently don't have to
be treated as the same entry, but if they're aggregated together,
they do. Going a little further, if I'm subscribed to both original
feeds and an aggregation that includes both, then I have potentially
four <entry>s with the same id. Which are the same entry and which
aren't? Only the two in the aggregation, which really aren't, are
required to be treated as the same.
I always thought that two entries with the same id should be treated
as the same entry.
What makes you thing otherwise?
Consider the following three simplified feed documents (or any two of
them, or just the last one):
// this is the legitimate one
<feed>
<id>http://a.com/feeda</id>
<entry>
<id>http://a.com/feeda/entry1</id>
<updated>2005-01-01T05:00+00:00</updated>
<title>I am the legitimate entry</title>
<content type="html"><a href="https://a.com/feedback.php">Use
this form to submit your credit card number</a></content>
</entry>
</feed>
// this one is phishing
<feed>
<id>http://b.com/feedb</id>
<entry>
<id>http://a.com/feeda/entry1</id>
<updated>2005-01-01T10:00+00:00</updated>
<title>I am the legitimate entry</title>
<content type="html"><a href="https://b.com/feedback.php">Use
this form to submit your credit card number</a></content>
</entry>
</feed>
// this is an aggregation
<feed>
<id>http://c.com/feedc</id>
<entry>
<source>
<id>http://a.com/feeda</id>
</source>
<id>http://a.com/feeda/entry1</id>
<updated>2005-01-01T05:00+00:00</updated>
<title>I am the legitimate entry</title>
<content type="html"><a href="https://a.com/feedback.php">Use
this form to submit your credit card number</a></content>
</entry>
<entry>
<source>
<id>http://b.com/feedb</id>
</source>
<id>http://a.com/feeda/entry1</id>
<updated>2005-01-01T10:00+00:00</updated>
<title>I am the legitimate entry</title>
<content type="html"><a href="https://b.com/feedback.php">Use
this form to submit your credit card number</a></content>
</entry>
</feed>
This is already bad enough. Now how about if the phishing feed claims
that it's atom:id is http://a.com/feeda. Worse still. With the
current spec text, an Atom consumer that does a little extra work,
somehow figures out that the phishing version of the entry is not the
same as the legitimate version, and tells the user that would be
violating the spec.