【问题标题】:Is there a way to secure an RSS feed behind ASP.Net Forms Authentication and still allow readers?有没有办法保护 ASP.Net 表单身份验证后面的 RSS 提要并仍然允许读者?
【发布时间】:2011-10-28 21:34:56
【问题描述】:

有没有一种方法可以创建只有登录到我们客户门户的客户才能看到提要内容的 RSS 提要?我知道我可以使用标准的 ASP.Net 身份验证来保护 RSS 提要,这对于在我们的网站上查看来说是很好的......但是读者如何能够订阅提要呢?

我很确定这个问题的答案是否定的......但也许还有其他我没有看到的解决方案?

谢谢!

【问题讨论】:

    标签: asp.net authentication rss


    【解决方案1】:

    您可以使用其他身份验证 cookie 来保护它,就像这篇文章中的那样长时间失效

    http://www.andreas-kraus.net/blog/increase-aspnet-authentication-membership-cookie-timeout/

    但我更喜欢另一种方法。如果您有一个用户,那么在数据库中为用户提供一个 uuid 列总是好的。然后,您可以使用他的 uuid 为用户提供指向您的提要的链接,并检查是否允许他在没有其他身份验证的情况下使用它。

    希望对你有帮助

    【讨论】:

    • 如果有人需要做的只是在 URL 中尝试不同的数字作为 ID,那岂不是很容易被黑客入侵?
    • 我没有说 id,我说的是像“173ccd60-01b3-11e1-be50-0800200c9a66”这样的 uuid,很难复制,不是吗?
    • 抱歉错过了。不错的主意...唯一的问题是我们仍然不希望人们共享链接,如果他们发布该链接,那么其他任何人都可以获取它。
    • 当然,如果您想在没有身份验证的情况下进行访问控制,这总是问题所在。
    • 谢谢,如果我们最终实现这一点,这将是我要走的路。
    【解决方案2】:

    您不能使用表单身份验证,因为 RSS 客户端不知道如何处理。不过,您可以做的是使用基本身份验证来保护它,并让假设能够访问 RSS 提要的用户在 URL 中包含用户名和密码。例如。喜欢:

    http://username:password@www.domain.com/feeds/rss

    这应该得到任何 RSS 客户端的支持,因为这是一个完全有效的 URI。最好使用 https,因为用户名和密码是明文发送的。

    注意:最新版本的 Internet Explorer 不再支持此功能,因为它受到欺骗。例如,可以发送包含以下链接的垃圾邮件:

    http://www.trustedbanksite.com@somewhere.ru/

    这很容易使用户误以为他们实际上正在访问他们银行的网站。不知道其他浏览器的支持情况如何。

    【讨论】:

    • 在不安全的 http 连接中使用用户名和密码更好还是使用用户可以更改的 uuid id?许多人将这样的网址发送给他们的朋友,却不知道他们提供了他的登录数据。
    • 从安全的角度来看,向 URL 添加用户名:密码或向 URL 添加 UUID 确实没有区别。两者都是用来识别用户的。我同意人们可能更有可能将带有 UUID 的 URL 转发给带有用户名:密码的 URL 的朋友,因为他们不明白 UUID 实际上代表他们的登录。您可能会查看 HTTP 基本身份验证(状态 401),但我认为 RSS 客户端对它的支持并不普遍。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-03-14
    • 1970-01-01
    • 1970-01-01
    • 2023-04-09
    • 1970-01-01
    • 2019-11-06
    相关资源
    最近更新 更多