[wp-meta] [Making WordPress.org] #3192: Provide an API endpoint to fetch plugin checksums

Making WordPress.org noreply at wordpress.org
Fri Oct 20 12:05:15 UTC 2017


#3192: Provide an API endpoint to fetch plugin checksums
------------------------------+-----------------------
 Reporter:  schlessera        |       Owner:  dd32
     Type:  enhancement       |      Status:  accepted
 Priority:  normal            |   Milestone:
Component:  Plugin Directory  |  Resolution:
 Keywords:                    |
------------------------------+-----------------------

Comment (by schlessera):

 Some observations on #2 above:

 '''A. Multiple checksums for a same file'''

 Given the way ZIPs are being built, I suppose that different downloads of
 a ZIP of a given version name could result in different files as the
 actual content of the ZIP, depending on when the ZIP was built and
 downloaded (i.e. what SVN revision it was built at). To reliably check the
 files on existing WordPress installations would mean that we need to have
 '''all possible checksums''' for any given file at a named version, not
 only the latest for that named version. So, if a ZIP is being generated,
 and the checksum file already exists, the newly calculated checksums need
 to be added to the checksums file, if they are different from the ones
 that are already included.

 If I understand correctly, the provided POC already does this. However, I
 wonder how we can retroactively calculate these multiple checksums for all
 existing versions. Does it make sense to merge all revisions that are
 tagged with a same version, or can some of them be excluded through some
 existing data?

 '''B. Test plugin'''

 The exploit plugin is great for making sure the calculated hashes are
 correct, but it seems to be very simple and properly versioned. Can we add
 one other plugin, that is known to include as many edge cases as possible?
 A plugin that has multiple released versions with a same named version
 tag, for example, to test the merging of multiple checksums for a same
 file.

 '''C. Database'''

 Regarding the database, I agree that an SQL database is not a good fit,
 but actually using SQL was never explicitly mentioned. If we want to
 examine the use of a database, we should rather examine the use of a NoSQL
 database like Redis, MongoDB, or Cassandra. They provide similar benefits
 than a file-based approach, but with added optimizations and integrity
 checks. They can also be synced more reliably across multiple servers.

 However, I suppose that these are not part of the existing infrastructure,
 so might not even be an option at all.

--
Ticket URL: <https://meta.trac.wordpress.org/ticket/3192#comment:6>
Making WordPress.org <https://meta.trac.wordpress.org/>
Making WordPress.org


More information about the wp-meta mailing list