![](/img/trans.png)
[英]What can trigger a form submit on disabled JavaScript without button-/input (of type submit)-tags
[英]Can a form with a disabled <input type=“submit”> be hacked to submit anyway?
我只是对<input type="submit" />
标签的安全性很好奇。
如果我有一个只有一个“提交”按钮的表单(带有method="post"
),该按钮被禁用,并且我没有编写任何影响表单、按钮或其其他内容的 JS/AJAX/jQuery,有人还能找到提交表格的方法吗?
这是我正在谈论的表格的代码:
<form method="post" action="processor.php" enctype="multipart/form-data">
<input type="text" name="foo" value="bar" />
<input type="submit" value="Submit" disabled="disabled" />
</form>
非常感谢!
是的,我什至不需要你的表格来提交它。 我可以使用 cURL 或类似的库来发送 POST 请求,就好像它来自表单一样。
始终验证服务器端的所有内容,您并不总能得到您所期望的。
任何对大多数现代浏览器的“元素检查器”足够熟练的人都可以添加/编辑/删除任何属性及其值。
使用这种方法,我可以删除disabled
属性,然后只需单击提交按钮
那你可以通过控制台或地址栏/书签这样运行javascript
javascript:document.getElementsByTagName("form")[0].submit();void(0);
还可以使用服务器端库(如 cURL)提交表单
客户端上的任何东西都可能被黑客入侵。 不要相信客户。 始终在服务器上进行验证。
例如, Tampermonkey 。
当然。 在控制台(或书签)中键入此内容即可,所有现代浏览器包括 IE8 及更高版本:
document.querySelector("form[action=processor.php]").submit();
在较旧的浏览器上,如果是第一种形式:
document.getElementsByTagName("form")[0].submit();
如果更难找到(不是第一种形式),那么在旧浏览器上可能需要多几行代码,但仅此而已。
是的,他们绝对可以。 作为一般规则,不要依赖任何客户端的安全性。 恶意用户可以并且将会操纵任何客户端代码。 无论您的前端代码发出什么请求,您都需要确保后端的一切都是安全的。
我同意它可以提交,一种方法是通过URL: http : //website.com/processors.php( POST everything)
因此,如果您不希望它提交,可以使用Servlet检查或其他安全措施
其他答案说你可以不使用你的表单直接提交表单,这也是正确的。 我只是想指出,此外,用户还可以取消禁用您的按钮,然后单击它(使用 Firebug 或等效工具)。 您发送给客户端的任何 html 或其他文本,他们可以随意修改。
在客户端禁用按钮非常适合提高可用性(例如,在 ajax 更新期间禁用,或者如果需要的字段缺少值),但它不应该成为任何与安全相关的工具包的一部分。
是的,他们可以简单地更改 HTML 并通过将 $disabled="disabled"$ 更改为 $disabled="false"$ 来启用表单。 将您的服务器设置为不接受无效输入。
当然可以破解你“愚蠢”的形式。 因此,如果您将在服务器端进行所有必要的验证,那么肯定会更好。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.