在上一篇文章当中,介绍到了通过Silverlight获取web.config中的值,最后提到了加密的问题,因此首先对该安全问题做一个简单的描述。
问题描述
1. 下方是我的web.config文件,当中配置这一个媒体文件服务器的IP地址
<?xml version="1.0"?>
<!--
For more information on how to configure your ASP.NET application, please visit
http://go.microsoft.com/fwlink/?LinkId=169433
-->
<configuration>
<connectionStrings>
<add name="VideoFiles_ConnectionString" connectionString="127.0.0.1"/>
</connectionStrings>
<system.web>
<compilation debug="true" targetFramework="4.0" />
</system.web>
</configuration>
2. 当在Silverlight程序中获取到该config中的值时,我们可以发现,通过查看页面的Source Code,是可以看到这个IP地址的,它是以明文的方式显示出来的,这样会引发安全性问题,我相信没有人愿意将自己的服务器IP地址暴露在外面

解决方法
在Page页面获取到web.config后,对该文件当中的内容进行加密,从而有效地解决了明文显示的问题,这样,别人就不能通过查看源代码的方式从前台获取你的服务器IP地址或者其他机密信息了,其实现方法如下:
1. 在Page页面后台的.cs文件中,加入机密算法,使用Rfc2898DeriveBytes 获取密码、salt 值和迭代次数,然后通过调用 GetBytes 方法生成密钥:
usin

本文介绍了如何在Silverlight应用程序中解决安全问题,通过使用Rfc2898DeriveBytes类和HMACSHA1算法实现PBKDF2,对从web.config获取的敏感信息进行加密。在页面加载时,加密后的数据被显示,而实际的IP地址等信息在Silverlight内部进行解密处理,确保了信息的安全性。
最低0.47元/天 解锁文章
4882





