This wiki page is created to keep track of Ayesh's Project application reviews for him to get advice and mentored by Git administrators and anyone else who might have suggestions, advices, etc.
I would like to thank Klaus Purer, Patrick Drotleff, Matthew Donadio (mpdonadio), Karl Scheirer (kscheirer) and everyone else for their effort in reviewing applications. Drupal always had clean, secure and fast code compared to other projects; Core and contrib alike. I realized project applications play a major role in vetting and reviewing new projects, so I wanted do what I can.
A list of security issues I could find in the candidate modules:
- [D7] Data Manipulate UI
ReviewThis module opens a menu router item that accepts GET, POST, PUT and DELETE data. It is protected with some
user_access()calls, but it did not validate the user input for Cross-site requests. I provided him with a proof of concept, and guidance on how to prevent it. - [D7] JSON Filter
ReviewThis module accepts user-provided JSON string, and outputs them without sanitizing it first. It is possible to craft JSON string that contains malicious content, and since this module did not run
check_markup()or such filter against the processed text, installed sites would be vulnerable. I provided a patch too. - [D7] Country Access
ReviewThis one has an admin setting to enter a custom message, and the admin page requires a special permission (which shows no warning about potential risks in the permission page). When the admin message is shown, it is not sanitized, and the admin-configured message is shown, with possible broken HTML, scripts, etc.
- [D7] Spamfree Email
ReviewSpamfree module is supposed to work independent of the client browser's JS capabilities. For browsers without Javascript, this module adds a
<noscript><img /></noscript>snippet that contains an encrypted string, but its key was hardcoded in the module, making it possible for anyone to decrypt it themselves. Also, module generates an image, which is CPU-intensive. I also helped him to add some DoS protection. - 3. [D7] Concurrent
ReviewThis module had a few unprotected menu router items.
List of all reviews
Following are the reviews I've made, manually entered, and are in the order of the issue's age (oldest first). I excluded some reviews that I didn't add helpful/constructive reviews.
-
(My application) [D7] IMEI Field
-
[D7] POWr Social Media Icons
Review #1, Review #2, Review #3, Review #4 -
[D7] Pushup Social
Review #1, Review #2, Review #3, Review #4 -
[D7] Spamfree Email
Review #1, Review #2, Review #3, Review #4, Review #5 -
[D7] Routing Debug
Review #1, Review #2, Review #3, Review #4
Comments
Hi and thanks for starting
Hi and thanks for starting this!
Impressive list already :-)
Here are some common templates that we use when reviewing: https://groups.drupal.org/node/184389
Thanks klausi. Could you shed
Thanks klausi.
Could you shed a light on this case please?
I came across modules that tend to have a great name that covers a big area, but does only a little for that name. Debug tools module for example.
There is no tools provided by this module, nor I believe it would help in actually debugging process per se. I didn't want to sound any negative in the application, but if the applicant has chosen a module name that is someone inappropriate (I'm probably wrong in this application in particular), how should we proceed? This module is providing additional information for bug reports. "Bug report extras" or such name would be a better match.
They have chosen the module name, and thus the hook names, variables, etc, so it would be a big change if they have to rename the module. but at the same time, if they promote the module, it becomes a long lasting problem in module namespaces.
We can only recommend name
We can only recommend name changes if the situation is confusing (as in this case), but we should not enforce it. So we should tell the applicants that the name is bad, but we should not block applications based on that alone.
It's similar as with module duplication: we should tell them that they are just re-inventing an already existing solution instead of collaborating, but we should not block applications on that.
You are right. Thanks. I did
You are right. Thanks.
I did not block any applications before, and never will. I just wanted to know what we should do, just in case.
With blocking applications I
With blocking applications I mean setting them to "needs work", so a confusing name alone should not cause the application issue to go to "needs work".
ready for git admin role
+1 on granting Ayesh git admin role.
+1 from me as well, I think
+1 from me as well, I think Ayesh is more than ready. Opened the webmaster issue, please add your +1 there! https://www.drupal.org/node/2497199
Thank you Klaus and Lucas
Thank you Klaus and Lucas (@heddn).
This means a lot and I'll try my best to live up to it.
You have my vote. I would
You have my vote. I would use the Review Template more, especially for your first review of a project. I helps make sure the important stuff gets identified, and the suggests are just suggestions.
Thank you Matthew.I will
Thank you Matthew.
I will definitely use the template more often. Usually the PA bot marks applications with Pareview errors as Needs Work, before anyone else. If the bot has mentioned the pareview errors, I focus on other potential issues.
People tend to use Pareview quite often nowadays, and some applications are perfect in the first shot in terms of Pareview test (which is great!).
I also tend to not block any applications for small issues ( Missing t() calls, 80 char limit, etc), but I do mention them in the application without changing its status.
In this application, I marked it Needs Work because of a bug in JavaScript (please see my line "
In the request recording JS file..."). The applicant looks experienced and the rest of the module was actually in good quality, except it previously had an unprotected menu router item.I think it was OK that I marked it needs work for that JS file bug, because otherwise that module wouldn't work in any site installed in a sub folder. I submitted a patch for him to make it clear where he needed fixing.
If I was wrong or could be better in that application, let me know please :)
Congrats and welcome as git
Congrats and welcome as git admin Ayesh!
Instructions for promoting people are here: https://www.drupal.org/node/1125818
There is quite a bit of RTBC backlog in the queue, so you can start there with the oldest applications. Feel free to ask us if you have any questions!