fel*_*ckz 19 asp.net encryption viewstate base64 machinekey
我试图打开viewstate加密始终作为IIS6中托管的ASP.NET 3.5网站的安全措施.我们关闭了viewstate,但仍然在此字符串中看到一些"controlstate".在测试环境中,我只需在web.config中设置以下内容,我就不能再将basest解码为viewstate为半明文:
<pages enableViewState="false" enableViewStateMac="true" viewStateEncryptionMode="Always">
我甚至将以下内容(由机器密钥生成器生成)添加到machine.config并仍然在我的测试服务器上加密viewstate:
<machineKey validationKey="002..." decryptionKey="D90E..." validation="SHA1" decryption="AES" />
我的非测试环境似乎没有获得上述更改,因为我始终可以使用上述设置将viewstate解码为纯文本.在做出任何改变之后,我总是感到不安.
有关我的非测试网络服务器的一些信息:
任何人都可以建议在哪里寻找可能会干扰asp.net viewstate加密的其他设置?
编辑:现在在我的iis测试服务器上我无法撤消viewStateEncryptionMode设置,因为它正在加密视图状态,即使我将其设置为"从不"并且我的其他网站似乎都没有抓住此设置.我在哪里可以看到这个属性被覆盖的地方?是否存在需要清除此设置的缓存,除了iisreset/stop www service/touch machine.config时要执行的操作?
编辑决赛:经过几天研究配置文件后,我放弃并通过代码实现了这一点.我已经有一个附加到页面事件的安全模块,所以在Page_Load中我添加了:Page.RegisterRequiresViewStateEncryption();
我真的很想知道是什么阻止了这个设置被IIS6 immediatley选中.当我在本地运行cassini时,如果我通过pages节点将viewStateEncryptionMode设置为"Always",我会立即看到它对viewstate进行编码并使用id ="__ VIEWSTATEENCRYPTED"渲染其他隐藏字段.当我将其设置为"从不"时,我会立即看到加密关闭.如果我对我的IIS6托管网站上的网站进行了相同的更改,它将立即生效,但如果我允许设置保留在那里,它最终会占用.我会停止/启动www服务,重置iis,清除ASPNET临时缓存,但我不知道还有什么可以尝试?希望这篇文章可以ROT一段时间,将来有人会看到我所经历的相同行为,我们可以进一步弄清楚这一点!
Web.config 页面设置不适用于禁用可更新选项的预编译 ASP.Net 应用程序。已经有一段时间了,但我的测试服务器可能已经部署为禁用可更新选项......吸取了教训。
参见MSDN
我问了类似的问题,同样的问题。
| 归档时间: |
|
| 查看次数: |
4468 次 |
| 最近记录: |