我有一个必须公开的 asp.net mvc 操作。URL 类似于:
http://www.abc.com/controller/action?q="abcdef"
这"abcdef"
部分是我将提供给应该访问该 URL 的用户的内容,但这不会阻止其他人使用相同的 URL,那么是否有任何额外的安全层可以验证谁在使用该 URL?是否有任何最佳实践来添加人们无法轻松使用或确定的额外信息,除非他们被明确告知会使公共 URL 更难使用?
我有一个必须公开的 asp.net mvc 操作。URL 类似于:
http://www.abc.com/controller/action?q="abcdef"
这"abcdef"
部分是我将提供给应该访问该 URL 的用户的内容,但这不会阻止其他人使用相同的 URL,那么是否有任何额外的安全层可以验证谁在使用该 URL?是否有任何最佳实践来添加人们无法轻松使用或确定的额外信息,除非他们被明确告知会使公共 URL 更难使用?
一种选择是生成一个一次性密钥,如 GUID,它仅在 5 分钟内有效。将这些存储在您的数据库中,当有人想使用密钥访问 URL 时,请验证它是否在不到 5 分钟前。您还可以验证 IP 地址和/或用户代理,但这不能保证(GUID 也不是,但这是一个好的开始)。您可能还想使用 HTTPS 来避免人们嗅探您的密钥。
将帮助您实现您想要的。它们作为 HTTP 协议的一部分开发,为您提供选择。不要自己做自行车。问题是广泛的。基本身份验证可能是帮助您实现所需目标的最简单、最快速的方法。并且请您下次设置标签以了解您使用的是哪种技术和哪种服务器。