我网站上的许多表单都是这样完成的:
<form action="filename.php?id=10">
但我刚刚意识到用户可以在动作中编辑这个变量(id)。这将是重大的安全漏洞。我怎么能阻止这个?或者通过变量的更好方法是什么。
隐藏输入会起作用吗?
<input type="text" hidden value="1" name="id">
传递变量的更好方法是什么?或者用户无法更改值的方式。
答案 0 :(得分:1)
无法使用HTML或任何其他客户端标记/脚本语言来保护表单。这里的关键词是客户端。任何客户端(HTML,CSS,Javascript)都可以由用户操纵。没有办法保护数据客户端。但是,这确实会使您处于服务器端。
只有在服务器端才能确保安全性。您将数据发送到处理它的服务器。您可以使用PHP,nodeJS,Ruby或任何您想要验证信息的内容。 This tutorial为您提供了使用PHP(服务器端编程语言)开始验证的很好指南。
对于您的具体情况,您可能希望编写一些PHP代码,说明ID是否无效(但是您选择确定该ID),然后向用户抛出错误并且不接受输入。如果你能学会正确使用PHP,那么PHP和其他服务器端编程语言就很棒。
答案 1 :(得分:0)
无法使通用表单更安全。处理用户数据时会出现安全部分。
实际上,技术上有两种方法,至少可以减缓蛮力攻击。
这是在他们第一次看到用户会话时存储它们。如果您发现相同的IP保持打开状态,则可以将其阻止一段时间。这需要一个数据库表和一些额外的代码。在大多数情况下,这将是过度的。
答案 2 :(得分:0)
用户浏览器中的表单本身可以由用户自由修改。你无能为力。为了保护它,处理表单的服务器端代码中的逻辑需要进行相关的安全检查,检查登录用户是否真的可以使用他们提交的表单数据表明他们正在尝试的对象。与之合作。