问题标签 [machinekey]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
181 浏览

c# - 验证视图状态 MAC 失败 ASP.NET

我收到以下错误消息:

视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的 validationKey 和验证算法。AutoGenerate 不能在集群中使用。

经过大量搜索,我找到了这个文档https://support.microsoft.com/en-us/kb/2915218

在上面的文件中,我找到了下面的部分

附录 A:如何生成 machineKey 元素

在本节中,有一个生成的函数,<machineKey> 但我不知道将此代码放在我的应用程序中的何处以及如何调用此函数。

0 投票
1 回答
1565 浏览

c# - 通过应用设置设置 MachineKey

我们有一个.NET 4.5.x oss 应用程序,我们正在使用 git deploy 将其部署到 azure 网站。我们有一个构建服务器,它将工件提交到 git repo,然后我们使用它来 git deploy。我们使用 azure 中的应用设置来控制一切。但是,我在寻找通过应用程序设置/环境变量设置机器密钥的方法时遇到了障碍。还有其他人遇到这个问题并解决它吗?

PS,似乎我们应用程序中唯一使用machineKey的是SignalR ...我想知道是否有一种安全可靠的方法可以在不使用机器密钥生成令牌的情况下替换IProtectData。

0 投票
1 回答
198 浏览

asp.net-mvc - 恒定的验证密钥不是安全风险吗?

今天我了解到,在服务器场上,我不能使用validationKey="AutoGenerate",而是为 指定一个“固定”字符串值validationKey,以确保场服务器处理请求的一致性。给出的例子是:

我的印象是,为每个请求和每个用户生成一个新密钥大大增强了安全性,但如果密钥是恒定的,它会从表单上的隐藏字段中检索并用于伪造请求。

或者我必须在服务器场上停止使用隐藏字段作为此键,而是使用标头或 cookie 吗?

我说防伪密钥存储在表单中,因为这个 Razor 标记:

呈现此 HTML:

除非我们在这里讨论不同的键,但那将如何工作?

0 投票
1 回答
2973 浏览

.net - 使用 AES256 加密 MachineKey

我花了一段时间在谷歌上搜索它无济于事,所以这比我想象的要棘手,或者我从根本上误解了它是如何工作的。

我的 Web 服务器有一个服务,其 web.config 文件包含一个机器密钥。我想加密它。

加密它是一个简单的 powershell 命令:

这工作正常。它加密。通过相同的方法解密也可以正常工作。但是,它默认为三重 DES 加密。这是机器密钥的加密版本给我的:

我们不希望那样。我们希望 ASPNET_REGIIS 使用 AES 256 进行加密。到目前为止,我的研究告诉我,这可以通过使用加密脚本上的 /PROV 参数指定“ProtectedConfigurationProvider”来完成。这应该参考以下加密提供程序:

C:\Windows\Microsoft.NET\Framework\v4.0.30319\Config\machine.config

我目前只有一个提供者,默认的 (RsaProtectedConfigurationProvider),它似乎是使用三重 DES 的提供者。

有谁知道需要采取哪些步骤来使用 AES 256 通过 ASPNET_REGIIS 加密 machineKey?我这里有什么大错特错吗?

非常感谢您提供的任何帮助。

0 投票
2 回答
4541 浏览

c# - 回收应用程序池时机器密钥更改

我正在使用 MachineKey API 加密/解密 ASP.NET 应用程序中的一条信息。我在用

MachineKey.Encode(data, MachineKeyProtection.All)

MachineKey.Decode(data, MachineKeyProtection.All)

API的方法。启用加载用户配置文件后,一切都在 Windows 8 和 Windows Server 2012 上运行良好。问题是由于某种原因它无法在Windows Server 2008 R2 with IIS 7.5.

最初我的印象是我需要在应用程序池上启用加载用户配置文件设置,但这没有任何区别。知道我在这里可能缺少什么吗?

谢谢

0 投票
1 回答
596 浏览

asp.net - 视图状态 MAC 验证失败。

视图状态 MAC 验证失败。如果此应用程序由 Web Farm 或集群托管,请确保配置指定相同的 validationKey 和验证算法。AutoGenerate 不能在集群中使用

堆栈溢出和 asp.net 论坛中也有同样的问题,但是任何解决方法都不能解决我的问题。

当我将数据从一个 asp.net 页面发布到不同网站(以 SSL 托管)的另一个页面时,我遇到了上述错误。我尝试在两个应用程序中添加相同的机器密钥并尝试提供如下页面属性

但我仍然遇到同样的错误。请注意,我使用的是 VS 2013、最新的 ASP.net 版本和托管在 SSL 中的应用程序。

请提供解决方案。

0 投票
1 回答
304 浏览

asp.net - 在 2 个服务器 web.config 中设置机器密钥无法解决错误“MAC 地址验证失败”

我们有两台服务器:一台用于开发目的,另一台用于测试环境,我们在开发服务器中记录每个请求并将记录的请求重播到测试环境服务器,基于安全原因,我们不应将 EnableViewStateMac 设置为 false,因此我们必须设置相同两台服务器上的机器密钥(我的意思是在每个 web.config 文件中)但是当我们想将开发服务器中已经捕获的请求重播到测试环境服务器时,我们收到错误“MAC 地址验证失败......”。怎么了??

0 投票
1 回答
3425 浏览

node.js - 如何使用nodejs解密cookie

我正在尝试运行这个

在这个Q&A中,它提到了关于节点 js 版本的差异,我尝试应用那个但没有成功:

线结果这样的结果

给出这个错误

nodejs 版本:4.1.2 和加密版本 0.0.3

我怎样才能用这个算法正确解密 cookie 或者你能建议任何其他的吗?

0 投票
0 回答
753 浏览

asp.net-mvc - 防伪令牌无法解密

我的 asp.net 网站中的某些表单导致“无法解密防伪令牌”异常。我尝试了一些解决方案,但没有奏效:

  • 我的表格中没有重复项@Html.AntiForgeryToken()

  • 我不使用网络农场,但我尝试添加machineKey. 我用过AutoGenerate,但是没有效果。

  • 我添加了固定的机器密钥值,IsolateApps但它抱怨“指定的解密密钥具有无效的十六进制字符”。

  • 我删除IsolateApps并停止了应用程序池。

我还能做什么?为什么会发生这种情况?谢谢。

0 投票
0 回答
99 浏览

c# - 在 ASP.NET Web 应用程序中同步机器密钥

我有一个使用 ASP.NET Web 表单实现的 Web 应用程序。问题是我的登录系统在作为网络场的主机上运行不佳。问题是用户在登录系统 1 分钟后自动注销。

有人告诉我,我需要在我的 Web 应用程序上同步机器密钥,以防止这种情况发生:

这里最大的问题是,我到底应该如何生成这些密钥,甚至知道它们的值?我无法访问付费 Windows 主机上的服务器?!那么我该怎么做这些家伙呢?