这是我的情况:
我有一个从数据库中提取数据的搜索页面。显示的每条记录都附加了一个键,以便从数据库中提取该记录的数据。当单击记录文档的链接时,使用 KO 数据绑定将此键添加到 URL 上,并将控制权传递给相应的 MVC 控制器。
这是我的问题:
该密钥显示在 URL 中。我不能允许这样。本网站的用户只被允许访问某些记录。如果用户仅通过更改 URL 中键的最后一个或两个数字就可以看到任何记录,这是不可接受的。到目前为止,我想出的最佳解决方案是在处理搜索结果时使用 AES256 加密来加密每个密钥,然后在将加密传递给另一个控制器后解密。这很好用,除非我进入使用 HTTPS 的环境。我收到 400 个错误。
这是我想太多了吗?有没有办法使用 MVC 和 KO 完全屏蔽 URL 中的密钥?或者即使使用 HTTPS,也应该在 URL 中允许加密?
以下是一些澄清的例子:
如果不对我的代码进行任何更改,以下是 URL 的外观:
使用加密,我想出了这样的事情:
只要它适用于 HTTPS,它就可以正常工作。
一种或另一种方式,我需要打乱 URL 中的密钥或摆脱它。或者确定每次调用控制器时不使用键运行搜索的方法。
谢谢大家的帮助。