经过长期斗争,我终于找到了工作液自己。基本的想法是编写我自己的资源处理程序以及资源处理程序工厂。

创建实现IResourceHandler的MyResourceHandler。

如果ResponseLength没有值且Stream为null(可选),请在GetResponse函数中进行解密。

创建实现IResourceHandlerFactory的MyResourceHandlerFactory。

在GetResourceHandler函数中进行解密。

初始化ChromiumWebBrowser时使用MyResourceHandlerFactory。在MyResourceHandler

样品的GetResponse功能:

public virtual Stream GetResponse(IResponse response, out long responseLength, out string redirectUrl)

{

redirectUrl = null;

responseLength = -1;

response.MimeType = MimeType;

response.StatusCode = StatusCode;

response.StatusText = StatusText;

response.ResponseHeaders = Headers;

if (ResponseLength.HasValue)

{

responseLength = ResponseLength.Value;

}

else

{

//If no ResponseLength provided then attempt to infer the length

var memoryStream = Stream as MemoryStream;

if (memoryStream != null)

{

responseLength = memoryStream.Length;

}

else

{

var absoluteFilePath = new Uri(FilePath).AbsolutePath;

var fileBytes = File.ReadAllBytes(absoluteFilePath);

if (ShouldDecrypt)

{

memoryStream = Decrypt(fileBytes);

}

else

{

memoryStream = new MemoryStream(fileBytes);

}

responseLength = memoryStream.Length;

Stream = memoryStream as Stream;

}

}

return Stream;

}

样品GetResourceHandler功能MyResourceHandlerFactory:

public virtual IResourceHandler GetResourceHandler(IWebBrowser browserControl, IBrowser browser, IFrame frame, IRequest request)

{

try

{

var uri = new Uri(request.Url);

var filePath = uri.AbsolutePath;

if (!File.Exists(filePath)) return null;

var mime = GetMimeType(filePath);

var fileBytes = File.ReadAllBytes(filePath);

if (ShouldDecrypt)

{

Stream decryptedStream = Decrypt(fileBytes);

return MyResourceHandler.FromStream(decryptedStream, mime);

}

Stream fileStream = new MemoryStream(fileBytes);

return MyResourceHandler.FromStream(fileStream, mime);

}

finally

{

request.Dispose();

}

}

最后如果你想知道如何初始化ChromiumWebBrowser使用MyResourceHandlerFactory:

var browser = new ChromiumWebBrowser

{

ResourceHandlerFactory = new MyResourceHandlerFactory()

};

cef如何隐藏html,CefSharp访问加密的HTML/JS/CSS文件相关推荐

  1. html隐藏层点击显示不出来,[js+css]点击隐藏层,点击另外层不能隐藏原层

    1货币转换,下图显示了这个程序子只进行简单的 把元素放在下面的目录下,在创币转换应用程序这个例 所需的界面,包括一些UI组件实例(Button, ComboB 货币转换,下图显示了这个程序组件实例(B ...

  2. 使用IP访问正常,使用域名访问加载不出来js、css文件和图片,

    问题:使用IP访问,页面正常,使用域名访问,加载不出来js/css文件以及图片. 原因是:nginx配置了反向代理,所以通过域名路径访问不到Js和图片等文件. 解决办法:增加Nginx配置: loca ...

  3. 接口访问加密_加密“访问”的争论日益激烈

    接口访问加密 即使美国政府再次竞购Clipper Chip ,这是一个臭名昭著的事件,多年来一直影响着密码学的辩论,但在许多季度中,人们重新开始关注不应重复的情况. 最新证据来自联合国人权事务高级专员 ...

  4. 实现Android APK加固:代码加密隐藏、资源加密隐藏、so库加密隐藏。兼容unity引擎。附加固工具链接。

    1.为什么做加固 因为不想辛辛苦苦做的东西,被别人拿去改成各种版,半路摘我的桃子. 所以需要将原包的一些核心东西进行加密影藏. 市面上比较好的解决方案就是进行加固,能提升apk安全性. 2.怎么加固 ...

  5. 【Shiro原理一】shiro:hasPermission 隐藏页面无权访问的资源

    shiro:hasPermission 隐藏页面无权访问的资源,因为层层调用方法,下面可能有点儿乱,注意上下结合看方法名. jsp: organ_list.jsp <shiro:hasPermi ...

  6. win11文件夹怎么加密?win11系统自带文件加密的方法步骤

    win11文件夹怎么加密?win11系统自带文件加密的方法步骤!升级Win11系统之后,因为换了新的系统,界面变了,设置改变了许多,所以很多功能不会使用了.比如今天要给大家说的,win11怎么给文件夹 ...

  7. 文件夹加密软件怎么选?文件夹加密软件盘点

    文件夹是电脑储存数据的重要工具,那么该如何保护文件夹的数据安全呢?使用合适的文件夹加密软件可能是最简单的方法.那么文件夹加密软件该怎么选呢? 文件夹加密超级大师 文件夹加密超级大师可以说是最全能的文件 ...

  8. 【密码学】Java课设-文件加密系统(适用于任何文件)

    Java实现文件加密解密 前言 一.密码学入门 1.对称加密 2.非对称加密 二.程序代码 1.welcome类(欢迎界面) 2.Log类(登录界面) 3.Register类(注册界面) 4.Inde ...

  9. 设计文件加密服务器,如何设计数据库文件加密系统

    据有关资料报道,计算机犯罪80%来自系统内部.实现数据库文件加密以后,各用户(或用户组)的数据用自己的密钥加密,其他用户无法对其进行解密,保护了用户的秘密.另外,数据库的备份内容也可以是密文,能够减少 ...

最新文章

  1. UDP收/发广播包原理及步骤
  2. Could not load type 'System.Web.Mvc.ViewPagedynamic' in asp.net mvc2 after publishing the website
  3. CodeForces - 570D Tree Requests(树上启发式合并)
  4. WebQML笔记-qml获取canvas中元素是否被按下
  5. Android安全之应用签名验证
  6. python bp神经网络 隐含层神经元数_【机器学习】python实现BP神经网络实战
  7. maven项目的pom文件中常用的简单的标签理解
  8. 如何学习Web前端知识转型?
  9. Python说文解字_半成品再加工
  10. 爬虫:Python爬虫学习笔记之网页解析基础——爬取360导航栏目
  11. 基于springboot的社团管理系统
  12. Python迭代器(Iterator)
  13. 服务器电脑安装Centos7操作系统
  14. strcmp函数的实现方式
  15. 计算机网络第三弹——数据链路层
  16. 租房签合同之前的注意事项
  17. TR转TO L_TO_CREATE_TR
  18. script type=text/JavaScript是什么
  19. 携程网跨站弱点及物理路径泄漏
  20. stable_sort应用例子

热门文章

  1. python职业发展方向_59秒看懂IT运维的发展方向及职业规划
  2. ubuntu 上NVIDIA驱动和CUDA9.0 的坑之一二
  3. liblfds 测试
  4. [转]微软代码示例:ASP.NET 2.0 三层架构应用程序教程系列
  5. python查找元素的下标 leetcode 392
  6. leetcode 1209 python
  7. oracle undo head,淺談Oracle的undo管理
  8. 问题通用解决方法探索
  9. O(logn)复杂度恐怖之处
  10. CCF201512-2 消除类游戏