我正在开发移动网站,我在安全性方面存在一些问题。
用户首次浏览我的网站时,该页面请求服务器获取一些私人用户的数据(即RSA私钥),该数据将在未来的操作中使用。此私钥必须存储在本地设备内存中的某个位置(作为设备上的文件,浏览器缓存...)。 下次当同一个用户启动页面时(页面上的某些功能),页面必须在需要时从本地数据加载文件并使用它(即使用私钥加密某些字符串)。
问题在于存储此密钥以及如何阅读它?
首先,我想到了饼干。但cookie将随所有请求一起发送,因此使用私钥恕我直言这样做并不是一个好主意。 当然连接将通过SSL,但即使我不想将私钥发送到服务器(它必须尽可能安全!)。 那么,如何解决问题......?
我可以补充一点,没有必要从服务器获取私钥。它可以通过文件管理器或类似的东西作为文件加载到设备。简单地说 - 浏览器必须在需要时读取私钥并使用它。我不认为浏览器允许从JavaScript保存/读取文件,对吗?
问题的解决方案现在必须适用于大多数可用设备和浏览器(尤其是iPhone,Android,Symbian + Opera Mobile(/ Mini?)。
也许HTML5及其'localStorage'可以解决它,但我必须假设,我不能使用HMTL5及其所有功能。 我考虑使用jQueryMobile框架。
请帮忙!在此先感谢!!
答案 0 :(得分:0)
您可以在WebView实例上获取WebSetting对象,在该类中,您可以使用该方法设置路径@,您可以在其中设置私有区域的路径
http://developer.android.com/reference/android/webkit/WebSettings.html#setAppCachePath(java.lang.String)
我希望这可以回答你的问题。
答案 1 :(得分:0)
CanIUse.com很好地概述了哪些浏览器支持localStorage。
您还可以使用JavaScript加密私钥。这不会增加太多安全性,但如果有人找到浏览器缓存文件,可能会有所帮助。