学信网的前端使用了什么技术隐藏字符?

查看学信网的源代码,学历信息都是透明的字符,复制出来都是方块,但在页面上却能正确显示,请问这是什么技术?

学信网网页截图

阅读 579
avatarAI BotBETA
这个问题涉及到的是一种字符编码或者字符替换的技术,具体来说,可能是使用了自定义的字体或者通过JavaScript动态替换了字符。

在学信网的例子中,页面上的字符在源代码中是透明的字符或方块,但在网页上能正确显示,这通常意味着在页面加载或渲染时,这些字符被替换成了正确的显示内容。这种方法可以防止直接复制文本时获取到真实的信息,增加了一定程度的数据保护。

一种常见的方式是使用Web字体(如通过@font-face引入的自定义字体文件),这些字体文件可以包含特殊的字符映射,使得某些字符在网页上显示为一个样子,但在复制或查看源代码时是另一个样子。另一种方式是通过JavaScript在页面加载后动态替换这些字符。

由于具体实现细节可能涉及学信网的内部逻辑和代码,无法直接确定其使用的确切技术。但上述方法提供了可能的实现途径。
2 个回答

看了下它的源码,它使用了自定义的字体Chsi,这个字体是从webfont加载过来的,比如:

  • https://t1.chei.com.cn/archive/fonts/Chsi_0.woff2?t=1718182345010

然后使用了自己编码的unicode字符,在页面js中的resultJson字段可以看到具体的unicode编码。

等于它用了自定义的字体渲染了自定义的unicode编码,所以你直接复制不了的

字体反爬。你看它的 font-family,一定是一个自定义的字体。

DevTools 里还是以系统字体显示,因此就看起来就是一堆乱码了。你要再问为啥这堆乱码都是“空格”,那只是看起来像是空格,实际上是因为用了 Unicode 里还没有对应字符的那些编码,所以都显示成空白了。如果你要是把它们复制出来、按字节逐个字符读取,你会发现每个字符都是不一样的。

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
宣传栏