我写了一个模块来使用RSA密钥重置密码。
该代码将向用户发送一封电子邮件,其中包含重置其中的链接 密码
然后用户点击该链接,将其发送回 MVC网站。
该链接由3部分组成:URL / ID / Public RSA Key
我正在使用带路径的MVC
问题1:RSA密钥有斜杠“/”,因此我必须对其密钥进行URL编码。
问题2:当Key被编码并且用户点击它时,MVC给了我以下错误
请求过滤模块配置为拒绝包含双转义序列的请求
有没有人知道如何使用路由处理MVC中的RSA密钥?
当然没有打开HTML注入的大门......
答案 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粘贴并提交回来。为您的最终用户提供更多的工作,但是更加安全。