如何防止查询字符串值可见

时间:2015-02-02 23:39:27

标签: javascript jquery ajax asp-classic

我们有一个发往https的应用程序,因此传输的数据受到保护(或者我应该说是受保护的)我想了解保护/隐藏(或类似)queryString值。它是一个jQuery / Javascript前端,它通过经典的ASP Web服务使用GET和POST的混合与数据库进行通信。 Web服务将JSON发送回客户端。

我意识到可以更改前端代码,因此所有内容都使用POST传递,但应用程序已完成并经过测试可以部署。在查询字符串中传递了一些不应该有的关键值。是否有可能使查询字符串值无法被检查或嗅探。 URL和查询字符串将一起提供到原始JSON的直接链接。我们想阻止这一点。也许有一些jQuery / AJAX功能可以探索。也许一些服务器IIS级战术?我猜嗅探发生在请求到达webservice站点的服务器之前,因此某些服务器/ IIS级别策略不是一种选择。

任何想法/建议都会很棒,谢谢。

2 个答案:

答案 0 :(得分:2)

您可以使用HTTP标头将数据发送到稍微不太明显的服务器,但仍然可以使用更高级的开发人员工具和记录器来检测。例如,this answer使用jQuery / Javascript(正如您所要求的)在不使用QueryString的情况下发送数据。

但是,您无法阻止客户端跟踪这些详细信息。

我个人建议您使用的解决方案是查看会话状态。通过将有效数据响应限定为某个会话状态,并在状态无效或过期时返回null,可以限制对数据的访问。这可能是在一次检索之后。此策略将涉及生成在较早阶段从服务器传出的令牌或代码,并在询问相关数据时使用。

答案 1 :(得分:0)

另一种方法是使用SSL或加密数据并将其放入已发布的控件(如文本输入框)中。 Microsoft在ASP.NET中为VIEWSTATE采用了类似的过程。

相关问题