Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/css/32.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Css 在UIWebVIew中保护自定义字体_Css_Ios_Encryption_Uiwebview_Font Face - Fatal编程技术网

Css 在UIWebVIew中保护自定义字体

Css 在UIWebVIew中保护自定义字体,css,ios,encryption,uiwebview,font-face,Css,Ios,Encryption,Uiwebview,Font Face,在我的应用程序中,我在UIWebView中显示HTML内容。HTML内容从服务器下载并存储在iPad的文件系统中,以便脱机使用。HTML在其CSS文件中通过@font-face使用自定义字体: @font-face {font-family: 'CustomFont'; src: url(Custom-Font.otf);} 为了实现这一点,字体.otf文件也被下载并存储在iPad的文件系统中 问题是,现在任何可以访问iPad文件系统的人都可以使用这种字体(如果你使用像IExplorer这样的

在我的应用程序中,我在UIWebView中显示HTML内容。HTML内容从服务器下载并存储在iPad的文件系统中,以便脱机使用。HTML在其CSS文件中通过@font-face使用自定义字体:

@font-face {font-family: 'CustomFont'; src: url(Custom-Font.otf);}
为了实现这一点,字体
.otf
文件也被下载并存储在iPad的文件系统中

问题是,现在任何可以访问iPad文件系统的人都可以使用这种字体(如果你使用像IExplorer这样的东西,这真的很容易)

这导致了一些法律问题,因为大多数字体提供商不允许他们的字体自由分发(当我使用这种方法时,他们实际上就是这样)

我的问题:有没有办法,当UIWebView尝试加载字体时,如何在文件系统中加密字体并解密它们?

请参阅“iOS应用程序编程指南”:

在iOS 4及更高版本中,应用程序可以使用数据保护功能添加 磁盘数据的安全级别。数据保护使用 存在于特定设备上的内置加密硬件(例如 iPhone 3GS和iPhone 4)以加密格式存储文件 磁盘。当用户的设备被锁定时,受保护的文件将被删除 即使是创建它们的应用程序也无法访问。用户必须 在以下位置显式解锁设备(通过输入适当的密码) 在您的应用程序可以访问其受保护的文件之前,请至少访问一次


我没有对此进行测试,但我强烈认为加密文件不能用iExplorer读取。

我找到了一个非常有效的解决方案:写了一篇关于如何使用苹果的CommonCrypto API和自定义URL协议保护iOS应用程序中的资源的文章。您可以使用它来加密所有嵌入的资源,它也可以用于字体

如果您没有字体提供商的许可证来重新分发他们的字体,那么通过将它们嵌入到您的应用程序中,您就是在侵犯版权。加密文件不会改变这一点。

不幸的是,这不会起作用:“用户必须为设备设置活动密码锁。”。因此,如果设备未锁定,我仍然可以使用iExplorer访问文件。据我所知,此功能仅在设备锁定时保护您的文件不受其他人访问。我需要保护字体文件不受所有用户的攻击,即使我(设备的所有者)不能复制和使用字体。好的,我知道这不是解决您问题的方法。您是否与字体提供商讨论过这个问题?显然,分发已授权字体的机制必须是他们考虑的一部分。仅仅因为您提供了otf文件,并不意味着收件人有权将其用于其他目的。合同条款的问题应该向你的律师和字体许可方的律师提出。这是一个很好的观点。我会这么做的。如果你有许可证嵌入字体,如果他们是加密的。我们是这样做的。