key*_*rdP 3 membership asp.net security guid query-string
我正在使用ASP.NET和我的网站的成员资格提供程序.如果用户能够轻松查看其GUID,那么这会被视为安全风险吗?我是否应该采取额外措施来阻止用户轻松找到他们的GUID,例如在他们确认验证过程时.虽然有很多方法可以解决这个问题,例如对"前端"活动使用单独的GUID,这是否会增加开销和开发时间?
可能的欺骗的一个例子是我在验证用户访问资源的权限时.
Guid cUser = (Guid)Membership.GetUser().ProviderUserKey; //if this is publicly viewed, then there's no reason to call the DB or store in a session as it can be placed in the QueryString
bool grantAccess = CheckGroupPermission(cUser, groupID);
Run Code Online (Sandbox Code Playgroud)
谢谢
将数据库的键暴露给外界通常不是一个好主意,但是如果您必须选择要公开的字段类型,GUID 并不是一个糟糕的选择。这比暴露一个序列号要好得多,因为它可以被猜测(很容易)什么构成了数据库中的未知有效标识符。
您可以提供用户名,而不是向外界提供 GUID。它应该是独一无二的。
不,显示用户记录的id本身并不存在安全风险.不管怎样,你不应该依赖它是秘密的,因为很难让自己完全独立于它们.
但是,如果您仅使用id作为验证来授予对资源的访问权限,则存在安全风险.您永远不能完全依赖客户端发送的任何信息,您应该始终使用一些不易被篡改的信息,例如在经过适当的用户验证后才放置在会话变量中的值.
归档时间: |
|
查看次数: |
1082 次 |
最近记录: |