繁体   English   中英

有残疾人的表格可以吗<input type=“submit”>被黑客入侵提交?

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM