gpt4 book ai didi

security - 使用应用脚本打开表单并进行选择

转载 作者:行者123 更新时间:2023-12-05 00:27:32 25 4
gpt4 key购买 nike

简而言之,我正在测试 Google Drive 表单,该表单将记录学校选举的选票以确保其安全。

有没有办法从共享 URL 和列表/输入数据打开表单?简而言之,我可以编写一个脚本来像一个会投票并试图使表单崩溃的机器人吗?

示例网址:http://docs.google.com/forms/d/RANDOM_STRING/viewform

最佳答案

编辑:大约在 2014 年底的某个时候,Google 表单服务的更改使此黑客行为无效。看 Is it possible to 'prefill' a google form using data from a google spreadsheet?How to prefill Google form checkboxes?对于依赖于 Form 方法的解决方案。

Google 表单,当显示为“实时表单”时,只是一个 HTML 表单,具有表单的所有常规行为。您可以查看实时表单的 HTML 源代码,并获取可帮助您模拟 POST 请求的信息。

HTML 表单

例如,查看来自 Spreadsheet Email Trigger 的表单.这是表单 HTML,为了可读性进行了清理:

<form action="https://docs.google.com/spreadsheet/formResponse?formkey=#FORMKEY#&amp;ifq"

method="POST" id="ss-form">

<br>
<label class="ss-q-title" for="entry_0">First Name
<span class="ss-required-asterisk">*</span>
</label>
<label class="ss-q-help" for="entry_0"></label>
<input type="text" name="entry.0.single" value="" class="ss-q-short" id="entry_0">
<br>
<label class="ss-q-title" for="entry_1">No of User
<span class="ss-required-asterisk">*</span>
</label>
<label class="ss-q-help" for="entry_1"></label>
<select name="entry.1.single" id="entry_1">
<option value="5">5</option>
<option value="10">10</option>
<option value="20">20</option>
<option value="30">30</option>
</select>
<br>
<label class="ss-q-title" for="entry_2">Email ID
<span class="ss-required-asterisk">*</span>
</label>
<label class="ss-q-help" for="entry_2"></label>
<input type="text" name="entry.2.single" value="" class="ss-q-short" id="entry_2">
<br>
<input type="hidden" name="pageNumber" value="0">
<input type="hidden" name="backupCache" value="">


<input type="submit" name="submit" value="Submit">
<div class="password-warning">Never submit passwords through Google Forms.</div>
</form>

此屏幕截图中标记了重要元素:

Form HTML

模拟 Google 表单提交的脚本

有了 Action URL 和字段名称,我们可以编写一个函数来以编程方式提交表单,方法是修改 the UrlFetch documentation 中的示例。 :
// Simulate POST to form
function sendHttpPost() {

// Copy the entire URL from <form action>
var formAction = "https://docs.google.com/spreadsheet/formResponse?formkey=#FORMKEY#&amp;ifq";

var payload = {
"entry.0.single": "Nelson", // First Name
"entry.1.single": "10", // No of users
"entry.2.single": "user@example.com" // Email ID
};

// Because payload is a JavaScript object, it will be interpreted as
// an HTML form. (We do not need to specify contentType; it will
// automatically default to either 'application/x-www-form-urlencoded'
// or 'multipart/form-data')

var options = {
"method": "post",
"payload": payload
};

var response = UrlFetchApp.fetch(formAction, options);
}

结果

这是上述脚本的结果,表单响应已添加到电子表格中。

Screenshot

关于security - 使用应用脚本打开表单并进行选择,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20410497/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com