我有一个发布到外部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)? 谢谢, Sandeepan
答案 0 :(得分:5)
这不可能。 Firebug只是在它的实际状态中读取DOM,所以即使它在稍后阶段添加,它仍然可以被检索。
这种安全方式被称为通过默默无闻的安全,并且是一种非安全性。你必须以另一种方式解决它,比如让服务器代替请求。
您让用户将表单提交给服务器。然后使用curl,使用正确的用户代码调用Web服务。
答案 1 :(得分:0)
我不认为这是可能的,我害怕。
如果它通过Javascript插入,Firebug仍会看到该元素,因为它会监视DOM树。如果此输入暴露了安全漏洞,那么服务器端代码的工作就是验证/修复它。
有关API的更多详细信息可能会帮助有人更详细地回答这个问题。
我希望这会有所帮助