【发布时间】:2011-03-31 09:57:44
【问题描述】:
我有一个发布到外部 API 的表单。有一个名为 customer_token 的参数作为输入字段传递。它用于 API 的身份验证,并为每个客户分配一个令牌。输入字段在 Firefox 的 Firebug 中是可见的(即使它是一个隐藏字段)。
如何隐藏它?
选项 按照我最初的想法使用 javascript
我认为在提交表单之前使用 javascript 在运行时创建该输入字段并立即删除该字段将起作用,但该字段仍会暂时出现。因此,即使一个人无法手动获取它,恐怕爬虫或蜘蛛(我不知道确切的术语 - 但一些自动化脚本)可能会获取客户令牌。有没有更好的解决方案?表单提交后,仍然显示相同的表单。
使用 Ikke 建议的一次性令牌概念
我不确定它会如何工作? API 需要正确的客户令牌值来处理任何请求。因此,即使要生成一次性令牌并返回,也必须发送带有客户令牌的请求。这样,任何人都可以看到我的客户令牌值,他们还可以发送请求以获取一次性令牌并使用它。那么它是如何解决问题的呢?
已解决 检查How to post form to my server and then to API, instead of posting directly(for security reasons)? 谢谢, 桑迪潘
【问题讨论】:
-
用户仍然可以监控所有 HTTP 请求,例如只需检查 Firebugs 的“net”选项卡,因此该值将可见。
-
如前所述,没有“最好的方法”。实际上,根本没有办法。即使是地址栏中的简单 JavaScript 行也可以检索此值。像 Chrome 这样的浏览器内置了类似于 Firebug 的工具,所以只针对这个是个坏主意... :-)
标签: html forms information-hiding external-application