我正在开发一个API,网站所有者将其网站网址提交到数据库,当用户使用API时,javascript主机名将被发送到我们的数据库,并根据他们在注册时提交的字符串进行检查。恶意用户是否有可能欺骗他们的主机名?如果是这样,是否有更安全的做法?
答案 0 :(得分:3)
任何人都可以发送任意构造的HTTP请求;引用标题或window.location的属性不可信(即使用户无法在浏览器中更改window.location的内容 - 至少在没有导致导航的情况下 - 用户始终可以观察到生成的请求是什么该值的结果,然后发送带有更改的HTTP请求。
如果这是一个问题,那么您可能希望将数字签名与域一起使用以确保域未被更改(即,在不更改签名令牌的情况下更改域将使请求无效,以及从域生成签名令牌并不明显,需要您提供给API客户的一些服务器端后端机制。