2

我有一个发布到外部 API 的表单。有一个名为 customer_token 的参数作为输入字段传递。它用于 API 的身份验证,并为每个客户分配一个令牌。输入字段在 Firefox 的 Firebug 中是可见的(即使它是一个隐藏字段)。

我该如何隐藏它?

选项 使用我最初想的 javascript

我认为在提交表单之前使用 javascript 在运行时创建该输入字段并立即删除该字段将起作用,但该字段仍会暂时出现。因此,即使一个人无法手动获取它,恐怕爬虫或蜘蛛(我不知道确切的术语 - 但一些自动化脚本)可能会获取客户令牌。有没有更好的解决方案?表单提交后,仍然显示相同的表单。

使用 Ikke 建议的一次性令牌概念

我不确定它将如何工作?API 需要正确的客户令牌值来处理任何请求。因此,即使要生成一次性令牌并返回,也必须发送带有客户令牌的请求。这样,任何人都可以看到我的客户令牌值,他们还可以发送请求以获取一次性令牌并使用它。那么它是如何解决问题的呢?

已解决 检查如何将表单发布到我的服务器然后到 API,而不是直接发布(出于安全原因)? 谢谢, 桑迪潘

4

2 回答 2

5

这是不可能的。Firebug 只是读取 DOM 的实际状态,因此即使在后期添加它,仍然可以检索到它。

这种安全方式被称为通过默默无闻的安全,是一种非安全。您将不得不以另一种方式解决它,例如让服务器代替请求。

您让用户将表单提交到服务器。然后使用curl,您可以使用正确的用户代码调用 Web 服务。

于 2010-08-18T08:02:26.927 回答
0

我不认为这是可能的,我害怕。

如果它是通过 Javascript 插入的,Firebug 仍然会看到该元素,因为它会监视 DOM 树。如果此输入暴露了安全漏洞,那么您的服务器端代码的工作就是验证/修复它。

有关 API 的更多详细信息可能会帮助某人更详细地回答这个问题。

我希望这有帮助

于 2010-08-18T07:59:39.100 回答