繁体   English   中英

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

[英]how to prevent querystring values from being visible

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

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

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

您可以使用HTTP标头将可见的数据发送到服务器,但仍可以使用更高级的开发人员工具和记录器进行检测。 例如, 此答案表示使用jQuery / Javascript(如您所要求的)发送数据而不使用QueryString。

但是,您不能真正阻止客户端跟踪这些详细信息。

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

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

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM