专栏首页DotNet Core圈圈C#爬虫与反爬虫--字体加密篇

C#爬虫与反爬虫--字体加密篇

爬虫和反爬虫是一条很长的路,遇到过js加密,flash加密、重点信息生成图片、css图片定位、请求头.....等手段;今天我们来聊一聊字体; 那是一个偶然我遇到了这个网站,把价格信息全加密了;浏览器展示:

查看源码后是这样:

当时突然恍然大悟,以为不就是把价格换成 &#xxxxx: .. 字符实体了嘛 我转下就行了;(注:大家可能对转义字符(实体名称)比较熟悉 比如双引号对应" ,字符实体呢就 &#开头 ; 结尾 中间那些是ASCII码 ;我这个示例中又有点不一样的是 以x开头 表明是16进制的 ASCII码;详解:http://www.w3school.com.cn/html/html_entities.asp 和 http://www.w3school.com.cn/tags/html_ref_ascii.asp) ;于是开始了转码。。。。

这是什么鬼,难道我的判断有误。当我打开浏览器调试界面发现

也是乱码,我在界面上copy金额黏贴到记事本看看

也是乱码说明上面的推断是没有错的,他应该就是在显示上做了什么处理; 在找找发现一段鬼鬼祟祟的代码;给price设置了一个叫zhongshugui的字体,但是好好的字体为啥要用base64 不用 http加载,http加载貌似可以用浏览器缓存的不是更好,base64 的话我每次浏览一个网页不都是要重新加载一下;莫非他不想缓存就是每次加载都不一样,经各种刷新后发现确实每次都生成不同文件;

既然感觉字体有问题 那我们就解析出来看看是啥,

这些0~9正好和界面上的html字符实体编码一一对应;所以这个加密方式就是 html写对应的HTML实体并与字体里的ASCII对应,自定义字体文件 以base64的方式内嵌到html里 ;每个页面随机生成不同的字体(就是字体里的ASCII);上面那个是为了写帖子自己仿造原网站做的例子; C#解析字体的类在System.Windows.Media命名空间下Fonts类: https://docs.microsoft.com/zh-cn/dotnet/api/system.windows.media.fonts?view=netframework-4.8

本文分享自微信公众号 - DotNet技术平台(DotNetCore_Mements),作者:qqljcn

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-07-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • .net持续集成sonarqube篇之sonarqube基本操作(二)

    Activity界面主要是对多次构建管理界面,主要是帮助管理员快速了解项目每次构建与以往构建相比问题是增加了还是减少了等指标.由于目前我们仅进行了一次构建,因此...

    Edison.Ma
  • 一张图来看看.NETCore和前后端技术的演进之路

    2019年3月10日,在长沙.NET 技术社区组织的技术沙龙《.NET Core和前后端分离那些事儿》上,我们曾经试图通过一系列抽丝剥茧的过程来引导大家在这条基...

    Edison.Ma
  • 设计模式之单例模式

    单例模式是GOF 23个设计模式中最简单的模式了,它提供了一种创建唯一对象的最佳实现,注意此处的简单只是表述和意图很简单,但是实现起来,尤其是实现一个优美的单例...

    Edison.Ma
  • 数据库相关总结

    通用: http://db-engines.com/en/ranking MySQL MySQL: http://www.mysql.com/ MySQL参考:...

    用户1221057
  • Http_load压力测试工具 原

        尝试过Spring的jmeter,不过好像有点难驾驭,测个文件url还行,但带个参数就各种问题不断了。

    尚浩宇
  • 【干货】深度学习全网最全学习资料汇总之模型介绍篇

    【AI研习社】关注AI前沿、开发技巧及技术教程等方面的内容。欢迎技术开发类文章、视频教程等内容投稿,邮件发送至:zhangxian@leiphone.com ...

    AI研习社
  • 100行代码,搞定http监控框架

    集群信息管理,员工信息管理,告警策略管理,几篇前戏已经铺垫足够,今天,分享如何用100行代码搞定一个可扩展,通用的http监控框架。 一、常见的http监控玩法...

    架构师之路
  • Flutter 网络操作

    在前面的文章中我们在Flutter中的本地存储,我们可以将用户的数据存储在移动设备上,但是当用户清空设备或者更换设置这些用户存储的信息就会面临丢失的问题。那么,...

    flyou
  • 完全配置Python3+PyQt5+Er

    https://sourceforge.net/projects/eric-ide/files/eric6/stable/17.04/

    py3study
  • Python如何省略括号方法详解

    在Python语言中最常见的括号有三种,分别是:小括号()、中括号[]、花括号{};其作用也不相同,分别用来代表不同的Python基本内置数据类型。

    砸漏

扫码关注云+社区

领取腾讯云代金券