可以使用禁用<输入类型=“;提交”>无论如何都要被黑客入侵才能提交
Can a form with a disabled <input type="submit"> be hacked to submit anyway?
我只是对<input type="submit" />
标记的安全性感到好奇。
如果我有一个形式(具有method="post"
);提交";按钮,它被禁用了,而且我还没有写任何影响表单、按钮或其其他内容的JS/AAJX/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
客户端上的任何东西都可能被黑客入侵。不要信任客户。始终在服务器上验证。
例如,坦珀蒙基。
当然。在控制台(或小书签)中输入即可,所有现代浏览器包括IE8及以上版本:
document.querySelector("form[action=processor.php]").submit();
在旧的浏览器上,如果是第一种形式:
document.getElementsByTagName("form")[0].submit();
如果它更难找到(不是第一种形式),那么在旧的浏览器上可能需要更多的代码行,但仅此而已。
是的,他们绝对可以。一般来说,为了安全起见,不要依赖任何客户端。恶意用户可以并且将操纵任何客户端代码。无论前端代码发出什么请求,您都需要确保后端的一切都是安全的。
其他答案表示,您可以在不使用表单的情况下直接提交表单,这也是正确的。我只是想指出,除此之外,用户还可以取消禁用您的按钮,然后单击它(使用Firebug或等效工具)。你发送给客户端的任何html或其他文本,他们都可以随意修改。
禁用客户端按钮有助于提高可用性(例如,在ajax更新期间禁用按钮,或者如果有必填字段缺少值,则禁用按钮),但它不应该成为任何与安全相关的工具包的一部分。
是的,他们可以简单地更改HTML并通过将$disabled="disabled"$更改为$disabled="false"$来启用表单。将服务器设置为不接受无效输入。
- Javascript生成的表单未提交
- 将输入字段中的文本提交到我的数据库,同时将其添加到我的列表中
- HTML表单提交时未执行外部函数
- 在POST中将html表作为csv提交
- 我应该使用Ng提交还是点击表格
- 我想使用模态通过php文件发送邮件,并且我希望在提交关闭后关闭pop
- 提交后保留下拉选择的值
- 键入最后一位数字后自动提交
- 阻止表单元素提交
- JS表单提交"无法使用Chrome数据保护程序加载此页面.尝试重新加载页面.调试信息:POST CISmtuK
- Jquery提交表单而不刷新
- 将图像上传ajax与表单提交ajax相结合
- Jquery表单验证插件-如果选中复选框,如何在提交时执行某些操作
- 自定义表单验证和提交
- 带有验证和隐藏字段值的提交按钮
- 如何在 API 调用后和 if 语句中启用提交按钮
- Jquery函数在错误的时间提交
- Javascript无法处理表单提交
- 可以使用禁用<输入类型=“;提交”>无论如何都要被黑客入侵才能提交
- Google's recaptcha只出现在提交按钮之后-黑客表单插件