问题标签 [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.
c# - 这是索引属性,是的还是nea?
我正在尝试获取用于加密/解密我的 ViewState 等的当前 machineKey,以尝试调试另一个问题。(我的应用程序位于服务器场中,并且在每个服务器和应用程序的 machine.config 和 web.config 中设置了机器密钥,因此试图调试某些资源未正确解密的问题。我正在尝试看看哪个用于加密。)这是我的代码片段:
照原样,第 3 行抛出“未设置对象实例的对象引用”。这意味着我可能没有正确设置第二个空参数(属性必须被索引,对吗?)。
但是 machineKey 的 ValidationKey 属性的 ParameterInfo 返回的长度为零(所以该属性没有被索引,对吧?)。
http://msdn.microsoft.com/en-us/library/b05d59ty(v=VS.90).aspx
很明显,我在这里忽略了一些东西,并且希望有第二双眼睛来看看这个。有什么建议么?
viewstate - 视图状态 MAC 验证失败
有人可以帮我解决这个错误。它通常发生在应用程序空闲或会话到期时。
谢谢
asp.net - asp.net viewstate 加密问题
我试图打开视图状态加密始终作为我在 IIS6 中托管的 ASP.NET 3.5 网站的安全措施。我们关闭了视图状态,但仍然在此字符串中看到一些“控制状态”。在测试环境中,我可以简单地在 web.config 中设置以下内容,并且我无法再将视图状态通过 base64 解码为半明文:
<pages enableViewState="false" enableViewStateMac="true" viewStateEncryptionMode="Always">
我什至在 machine.config 中添加了以下内容(由机器密钥生成器生成),并且仍然在我的测试服务器上很好地加密了视图状态:
<machineKey validationKey="002..." decryptionKey="D90E..." validation="SHA1" decryption="AES" />
我的非测试环境似乎没有接受上述更改,因为我总是可以使用上述设置将视图状态 base64 解码为纯文本。在我进行任何更改后,我总是 iisreset。
关于我的非测试网络服务器的一些信息:
- 网络场/负载平衡(但目前只有一台服务器可供测试)
- Sql 会话状态(最初需要 machine.config 中的 machinekey 来设置它)
- machine.config:部署零售=“真”
谁能建议在哪里寻找可能会干扰 asp.net viewstate 加密的其他设置?
编辑:现在在我的 iis 测试服务器上,我无法撤消 viewStateEncryptionMode 设置,因为它正在加密视图状态,即使我将其设置为“从不”并且我的其他网站似乎都没有使用此设置。我在哪里可以查看该属性被覆盖的位置?除了当我 iisreset/stop www service/touch machine.config 执行的操作之外,是否还有需要清除此设置的缓存?
编辑最后:经过几天的研究配置文件,我放弃并通过代码实现了这个。我已经有一个附加到页面事件的安全模块,所以在 Page_Load 我添加了: Page.RegisterRequiresViewStateEncryption();
我真的很想知道是什么阻止了这个设置在 IIS6 上立即被选中。当我在本地运行 cassini 时,如果我通过页面节点将 viewStateEncryptionMode 设置为“始终”,我会立即看到它对视图状态进行编码并使用 id="__VIEWSTATEENCRYPTED" 呈现附加隐藏字段。当我将其设置为“从不”时,我会立即看到加密关闭。如果我在我的 IIS6 托管网站上对网站进行完全相同的更改,它不会立即生效,但如果我允许设置保留在那里,它最终会生效。我会停止/启动 www 服务,重置 iis,清除 ASPNET 临时缓存,但我不这样做 不知道还能尝试什么?希望这篇文章可以腐烂一段时间,将来有人会看到我经历过的相同行为,我们可以进一步解决这个问题!
asp.net-mvc - AntiForgeryToken 和 MachineKey 配置
我正在尝试将 .NET MVC 应用程序部署到 GoDaddy 服务器。我的一个页面上有一个 Html.AntiForgeryToken ,导致每次点击它都会引发异常。
我使用以下 URL 生成了机器密钥
并将页面 viewStateEncryptionMode 设置为“始终”
但是,我仍然收到错误消息,并且不知道下一步该做什么。任何建议将不胜感激。
asp.net - ASP.NET 中的自动机器密钥生成
默认情况下,机器密钥设置是自动生成和每个应用程序(AutoGenerate,IsolateApps)。MSDN 声明解密密钥和验证密钥基于 Web 应用程序 ID。我在我的 IIS 7 服务器上托管了两个 ASP.NET MVC 2 站点,但发现机器密钥是相同的。我通过使用反射查看 ValidationKeyInternal 和 DecryptionKeyInternal 属性来验证这一点。我还通过在一个站点上生成一个防伪令牌 cookie 并将其传递给另一个站点来测试它,并且可以读取该 cookie。
经过反复试验,我发现如果应用程序池标识更改,密钥也会更改。这两个站点具有相同的密钥,因为它们在网络服务凭据下运行。一旦我更改了一个站点的应用程序池标识,它们就会开始具有不同的验证/加密密钥。
但是,在我将这两个站点部署到另一台服务器后,即使更改了应用程序池标识,我也总是获得相同的机器密钥。两台服务器具有相同的硬件和软件配置。
我想知道在 AutoGenerate,IsolateApps 设置下是否有关于如何生成机器密钥的实际逻辑的参考。在网络上,有很多文章在谈论在网络农场场景中设置相同的机器密钥。但是我在对面遇到了一个问题。每个 Web 应用程序的自动密钥生成似乎无法正常工作。有没有人以前有同样的问题?
visual-studio - Visual Studio SharePoint 解决方案覆盖 machineKey
正是它在锡上所说的 - 每当我在 SharePoint 2010 解决方案中进行更改导致 web.config 被 Visual Studio 更新时,它都会更改元素
防止登录。必须是我指定的键。
帮助!
asp.net - 在服务器、站点和应用级别设置validationKey
我们的生产环境有三台负载均衡的服务器。在每台服务器上,IIS 中有九个站点。在每个站点中,有 1 到 15 个不同的应用程序。
为了在所有三台服务器上保持正确的加密/解密,应为相应的应用程序使用相同的validationKey 和decryptionKey。这可以设置为三个级别: - machine.config 中的服务器级别 - web.config 中的站点级别 - web.config 中的应用级别
在每个级别上设置它显然都有优点和缺点,但我想知道是否有人可以给出一些具体的理由来在服务器、站点和应用程序中这样做。
在 machineKey Web Farm Deployment Considerations部分,有一个简介
如果要将您的应用程序与同一服务器上的其他应用程序隔离开来,请将服务器场中每台服务器上每个应用程序的 Web.config 文件放置在该文件中。
validationKey 是否是一个足够大的威胁向量,足以证明在三台服务器上约 100 个不同的应用程序上使用不同的密钥是合理的?我知道我知道。我愿意承担多大的风险?我在哪个行业?我希望别人用我的数据做什么?等等
当然,我怀疑最终我们会将其放在所有三个级别上,以确保在添加新网站或应用程序时全面覆盖我们的基础。但我并不真正期待回归测试工作。
谢谢,马特
asp.net - FormsAuthentication 中使用 machineKey/validationKey 的位置在哪里?
配置算法和密钥以用于表单身份验证数据和视图状态数据的加密、解密和验证,以及进程外会话状态识别
具体来说,FormsAuthentication 中的哪些方法使用了 validationKey 和 encryptionKey 值?
.net - 加密 - 机器密钥
我试图找出一种使用 C# 为我的 Web 应用程序加密数据库中几个字段的安全方法。
我需要找到一个执行加密/解密的脚本和一种存储密钥的方法。我读到你可以使用机器钥匙作为钥匙,对吗?
有自动生成和非自动生成的机器密钥。我想我宁愿使用非自动生成的,因为这样可以很容易地将我的 Web 应用程序部署到不同的服务器中。我找到了这个工具,它为你生成了一个:
http://aspnetresources.com/tools/machineKey
什么加密/解密脚本可以使用这个机器密钥?
我还想知道,将非自动生成的机器密钥存储在 web.config 文件中有多安全?如果有人可以看到 web.config 文件,为什么在 appSettings 中使用 machinekey 而不是“普通”键?