使用RSA密钥重置密码

时间:2013-08-15 12:29:13

标签: asp.net-mvc-4

  • 我写了一个模块来使用RSA密钥重置密码。

  • 该代码将向用户发送一封电子邮件,其中包含重置其中的链接 密码

  • 然后用户点击该链接,将其发送回 MVC网站。

  • 该链接由3部分组成:URL / ID / Public RSA Key

  • 我正在使用带路径的MVC

问题1:RSA密钥有斜杠“/”,因此我必须对其密钥进行URL编码。

问题2:当Key被编码并且用户点击它时,MVC给了我以下错误

请求过滤模块配置为拒绝包含双转义序列的请求

有没有人知道如何使用路由处理MVC中的RSA密钥?

当然没有打开HTML注入的大门......

2 个答案:

答案 0 :(得分:2)

我建议您将此信息作为查询字符串参数传递。 Scott Hanselman在this blog post详细解释。

引用他的结论:

  

在完成所有这些努力以获得请求路径中的疯狂内容之后,就是这样   值得一提的是,只需将值保留为Query的一部分   字符串(记得在这篇文章的开头回答?)更容易,   更清洁,更灵活,更安全。

答案 1 :(得分:0)

您可以使用web.config中的以下代码启用该功能。但请注意,这可能存在安全风险,因为它允许某人将javascript双重转义元素附加到页面网址,正如许多其他人所评论的那样。

<system.webserver>
    <modules runallmanagedmodulesforallrequests="true">
        <security>
            <requestfiltering allowdoubleescaping="true">
            </requestfiltering>
        </security>
    </modules>
</system.webserver>
到目前为止,您最好的选择是将您的链接转到一个表格,要求将RSA粘贴并提交回来。为您的最终用户提供更多的工作,但是更加安全。