cef如何隐藏html,CefSharp访问加密的HTML/JS/CSS文件
经过长期斗争,我终于找到了工作液自己。基本的想法是编写我自己的资源处理程序以及资源处理程序工厂。
创建实现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文件相关推荐
- html隐藏层点击显示不出来,[js+css]点击隐藏层,点击另外层不能隐藏原层
1货币转换,下图显示了这个程序子只进行简单的 把元素放在下面的目录下,在创币转换应用程序这个例 所需的界面,包括一些UI组件实例(Button, ComboB 货币转换,下图显示了这个程序组件实例(B ...
- 使用IP访问正常,使用域名访问加载不出来js、css文件和图片,
问题:使用IP访问,页面正常,使用域名访问,加载不出来js/css文件以及图片. 原因是:nginx配置了反向代理,所以通过域名路径访问不到Js和图片等文件. 解决办法:增加Nginx配置: loca ...
- 接口访问加密_加密“访问”的争论日益激烈
接口访问加密 即使美国政府再次竞购Clipper Chip ,这是一个臭名昭著的事件,多年来一直影响着密码学的辩论,但在许多季度中,人们重新开始关注不应重复的情况. 最新证据来自联合国人权事务高级专员 ...
- 实现Android APK加固:代码加密隐藏、资源加密隐藏、so库加密隐藏。兼容unity引擎。附加固工具链接。
1.为什么做加固 因为不想辛辛苦苦做的东西,被别人拿去改成各种版,半路摘我的桃子. 所以需要将原包的一些核心东西进行加密影藏. 市面上比较好的解决方案就是进行加固,能提升apk安全性. 2.怎么加固 ...
- 【Shiro原理一】shiro:hasPermission 隐藏页面无权访问的资源
shiro:hasPermission 隐藏页面无权访问的资源,因为层层调用方法,下面可能有点儿乱,注意上下结合看方法名. jsp: organ_list.jsp <shiro:hasPermi ...
- win11文件夹怎么加密?win11系统自带文件加密的方法步骤
win11文件夹怎么加密?win11系统自带文件加密的方法步骤!升级Win11系统之后,因为换了新的系统,界面变了,设置改变了许多,所以很多功能不会使用了.比如今天要给大家说的,win11怎么给文件夹 ...
- 文件夹加密软件怎么选?文件夹加密软件盘点
文件夹是电脑储存数据的重要工具,那么该如何保护文件夹的数据安全呢?使用合适的文件夹加密软件可能是最简单的方法.那么文件夹加密软件该怎么选呢? 文件夹加密超级大师 文件夹加密超级大师可以说是最全能的文件 ...
- 【密码学】Java课设-文件加密系统(适用于任何文件)
Java实现文件加密解密 前言 一.密码学入门 1.对称加密 2.非对称加密 二.程序代码 1.welcome类(欢迎界面) 2.Log类(登录界面) 3.Register类(注册界面) 4.Inde ...
- 设计文件加密服务器,如何设计数据库文件加密系统
据有关资料报道,计算机犯罪80%来自系统内部.实现数据库文件加密以后,各用户(或用户组)的数据用自己的密钥加密,其他用户无法对其进行解密,保护了用户的秘密.另外,数据库的备份内容也可以是密文,能够减少 ...
最新文章
- UDP收/发广播包原理及步骤
- Could not load type 'System.Web.Mvc.ViewPagedynamic' in asp.net mvc2 after publishing the website
- CodeForces - 570D Tree Requests(树上启发式合并)
- WebQML笔记-qml获取canvas中元素是否被按下
- Android安全之应用签名验证
- python bp神经网络 隐含层神经元数_【机器学习】python实现BP神经网络实战
- maven项目的pom文件中常用的简单的标签理解
- 如何学习Web前端知识转型?
- Python说文解字_半成品再加工
- 爬虫:Python爬虫学习笔记之网页解析基础——爬取360导航栏目
- 基于springboot的社团管理系统
- Python迭代器(Iterator)
- 服务器电脑安装Centos7操作系统
- strcmp函数的实现方式
- 计算机网络第三弹——数据链路层
- 租房签合同之前的注意事项
- TR转TO L_TO_CREATE_TR
- script type=text/JavaScript是什么
- 携程网跨站弱点及物理路径泄漏
- stable_sort应用例子