Project

General

Profile

Bug #122

[Google Forms] Enable filling out email fields and checking check boxes.

Added by jacobk about 1 year ago. Updated about 1 year ago.

Status:
Closed
Priority:
Normal
Assignee:
-
Start date:
08/14/2022
Due date:
% Done:

100%

Estimated time:

Description

With the current Google Forms fix, email fields (for your results to be sent to you) cannot be filled out, and check boxes cannot be checked. I have made an attempt to add support for these elements [1], but I am not sure of a good way to make sure that the data is actually sent properly. In my modified version of the script, I also expanded the TODO list a bit, for example to add reCAPTCHA integration to the list (which I made a (failed) attempt at, in a separate branch [2]).

[1] https://codeberg.org/JacobK/hydrilla-fixes-bundle/src/commit/506809bcf07e795a3d504e07561bec274040d45f/src/docs-google-com-fix-forms/google_forms.js

[2] https://codeberg.org/JacobK/hydrilla-fixes-bundle/src/branch/%28Google_Forms_reCAPTCHA_integration

History

#1

Updated by koszko about 1 year ago

  • % Done changed from 0 to 50

Thanks, I merged your changes.

Are you perhaps able to share a link to some form that has reCAPTCHA in it?

I am not sure of a good way to make sure that the data is actually sent properly

There is no good way that I know.

You can of course use browser's Developer Tools or mitmproxy to record the requests a page would do with its proprietary JS enabled. Then, you can compare that with HTTP requests the page does under our fix. If form upload request looks the same, the fix most likely works properly.

I'd also be happy to have a more convenient and more robust solution...

With mitmproxy you can additionally replay server responses from earlier saved sessions which can be helpful :)

#3

Updated by koszko about 1 year ago

  • Status changed from New to Closed
  • % Done changed from 50 to 100

Thanks. I made 2 separate packages for Google Forms fix. One with Hacktcha and one without it. All because installing Hacktcha also happens to break reCAPTCHA on sites where JS is allowed.

Although the main problem is solved, I noticed another, smaller one. When you do a lot of requests, Forms sometimes redirect you to https://www.google.com/sorry/index

That page also contains reCAPTCHA and I also tried to make a fix for it. Unfortunately, even when I was successful in obtaining the g-recaptcha-token through Hacktcha, I couldn't seem to get the page to respect it and redirect me back to the form. I put the unsuccessful code here.

Note that the "sorry" page worked properly with the proprietary reCAPTCHA client. And the POST request with g-recaptcha-token had the same structure as the one produced with my unsuccessful code. Debugging this is not really worth the time (the "sorry" page can be avoided by changing IP and clearing cookies... or just waiting), so I'll leave it unsolved for now.

I'm closing this issue. Feel free to open a new one if needed :)

#4

Updated by jacobk about 1 year ago

When I installed the fix with Hacktcha, the fix without Hacktcha was still loading. After manually deleting the Hacktcha-less mapping, I was able to use the mapping with Hacktcha. I guess this should only be a problem rarely, and uninstalling old mappings isn't hard if you know where to look.

#5

Updated by koszko about 1 year ago

jacobk wrote:

When I installed the fix with Hacktcha, the fix without Hacktcha was still loading. After manually deleting the Hacktcha-less mapping, I was able to use the mapping with Hacktcha. I guess this should only be a problem rarely, and uninstalling old mappings isn't hard if you know where to look.

That's what I think as well.

For those interested in details, Haketilo does not prevent the user from installing 2 mappings that both carry a payload with exactly the same pattern. And this is also what happened in your case. Hacktcha-ful and Hacktcha-less versions use the same pattern and Haketilo resorts to sorting them by their identifiers as you can see here. "docs-google-com-fix-forms" (quite obviously) sorts lexicographically before "docs-google-com-fix-forms-hacktcha", so the Hacktcha-less fix takes precedence.

In a perfect setting, Haketilo mappings would be given a feature to declare conflicts with other packages so that 2 colliding mappings cannot be installed together :)

Also available in: Atom PDF