粉丝1.1万获赞12.6万

这是一个内部视频啊,大家下载安装完以后就是这个界面,先呢把这个对话创作面板拖到这边来,这边这个布局呢是在这里可以切换的,包括这里日制系统也都可以切换。我们先说一下 p i 配置,还有激活, 激活验证的话大家这里输入激活码点授权就可以了,这里是我已经填好的选一个,这里的 api 信息是哪里来的呢?是阿里的,大家可以在这个图文教程里边拉到最下面这里,这里就会有注册地址,直接 登录选炸模型大模型哦,这里有免费领取,领取完进来就是这个界面了,我已经用了几个月了,其实他这个是无限的了,可以说因为阿里一旦有新的模型出来,他都会放出来。这里是七月份的,我是大概一月份的时候领的,他会有很多模型会放出来测试。 我后台呢,只需要在这里 api key 创建,你这里是没有的,我这里是已经有了,点一下创建点确认就可以了。把这个 api 信息复制一下,切回到我们的界面, 填入到这里测试就可以了。再把这里这个打开,启用它默认是关着的,点启用,再把 api 信息填入 测试就好了。这里是预制的一些模型,就是模型名称,大家可以点,你如果是新开的话,他是有很多模型可以用的。还有一个点呢,就是模型用量里边, 这里有个批量的开启,这个必须得开启,一键开启所有模型,就是免费额度,用完即停,如果你不开的话,他会用的,会超标,会欠费的。配置完了我们开始生成大纲, 这个是我们用 code code 泄泄露的代码做的一个对话框,这里是选小说构思,我们随便输入一下啊,你就直接给他一句话, 我要写一本类似回民的小说,你也可以跟他一直聊,聊到你需要的创意,满足你的需求为止啊,他会提示你生成就可以了,现在他已经思考完成了,可以看一下,我们可以看一下,他其实是把这本书给拆了, 作品定位主角,核心驱动力,我们就不仔细看了,他这里的设定你都可以改的,可以聊天直接直接在这里跟他说你需要改什么设定, 我们这里就演示一下直接生成啊,生成世界观,这里世界观已经完成了,一个简单的世界观,趁小说来说啊,用 ai 生成小说,不需要很详细的世界观啊,只需要初步的世界观就可以了。这里生成了点生成角色, 这里会让你确认这个世界观的信息,确认,然后他会帮你生成一些主要的角色,然后这个主要角色也生成完成了,我们就不去看他了。再点击生成大纲,他也会让你确认这些信息, 点确认生成,他会分析帮你去规划一个大纲的内容。这里呢,我们就选五十张啊,大家也可以选多的啊,选五十张选三卷吧, 这里是双点,我们就确定生成,这里的大纲生成是是会有审核的哦,当然审核这一步是在生成的过程当中是反复的审核,比如说他生成一到十张,然后他会审核一到十张的逻辑关系,在你下一次生成十一到二十张的时候, 他会去审核五到十五张的逻辑关系,在轮替的去穿插,去审核,在我们完整的生成一个大纲结束以后,他会跳出来一个一致性审查, 你点一下就可以了,他就会跳出来所有的检查的过程当中发现的问题。大纲的生成他跟生成小说一样,是有上下文关系的,所以他的思考和生成会比较慢。我们先来看一下这里的那个分割实验室, 我们来选一下模板,这个呢是因为我没有激活,所以这个模板它只有这么几个,我现在激活的是这个 q a 套装,这里创建了一个副本,就这里点创建副本,给大家演示一下这个副本的作用吗? 这里可以输入,你可以把自己完整,如果你有提示词的是可以直接填到这里边去开始测试,就按照这个提示词看它测试出来的结果是什么样的。我们点一下,等它生成一个,按照这个提示词, 根据这一段话生成的一个内容,看一下它的效果,效果不满意呢,你就调整这个提示词,继续生成,继续测试。这里生成和测试的速度,你看大家可以看到我这里比较慢哦, 是因为我用的是阿里后台的免费的,如果你用的是收费的话,他速度大概会快个一两倍以上。我们这里还没有完成,但是这个大纲已经完成了一部分,大家就可以看一下这个大纲,现在是十五张,一次性生成了十五张,这里也生成完成了测试的一个结果, 这里你就不不去多管了,大家走个流程了,知道怎么用就行,把它关闭掉, 我们可以激活激活自己的这个模板,模板激活以后呢,就可以把它关掉了,这是角色人物,这边正在生成大纲,我们先把刚刚生成的这个角色设定和机关设定先导入到我们的插件里面去啊, 导入单文档,选择角色设定,等它导入完成就好了,这里只显示在生成第二卷了。看一下这个大纲,这个人物已经导入完成, 我们再导入世界观,世界观设定我们所有生成的内容是建议大家一定要去看,一定要去改,因为 ai 它不是万能的, 它有的时候也会抽风,哪怕它不抽风,它生成的内容也不一定是符合你脑子里的那个想法的,你可以做一些修改。人物啊,世界观也已经导入完成了,我们看一下啊, 这款设定好,可以看到他这个严禁的规则,还有人物,看一下这个人物的设定,这些信息你也可以编辑到,都是可以改的,包括人物主角的这一个 m t b i 的 一个性格, 大家都可以改,要组织关系属性,人物关系发展时间线,但一般也不需要改了,其实只有你发现有问题的时候, ai 出错的时候,你需要去确认一下就行了。 我们来讲一下这个项目配置,这个项目配置里面的信息就是你小说的大致的信息啊,一个是书名,还有主主题,还有一个历史小说类型字数,这个要跟大家说一下,他没有办法百分之百准确的, 因为他是剧情优先的,所以字数一般都会多,这里是视角选一个第三人称, 还有核心冲突和主要情节这两样呢,到时候生成大纲以后,你可以让 ai 帮你生成这两个,只需要一两百个字就够了,输入就行了,我们这里就随便写一个,保存一下, 请输入主题大纲,这里已经生成到三十张了,应该是三十五张了,我们等待他生成完成了。还有有些兄弟过来是他本身就已经写了几十张,或者是很多张的小说,想在这里续写, 在这里导入章节,可以选择单文件,也可以选择文件夹,它会全部帮你复制到我们的文件夹里, 复制完了以后呢,它有一个批量分析,一般导入以后它会自动提示你是不是需要自动分析,你可以直接点自动分析,然后等待它分析完成,提取了 ai 的 记忆就可以了。然后我们来讲一下这个吧, 这里是可以新新建绘画,历史绘画,在这边还可以导出绘画或者搜索你之前的绘画信息,这里重点在这里啊, 这几个是我们内置的预设好的,这里可以新建一个属于你自己的 agent, 如果你用的不太习惯的话,可以用自己的。还有就是 skill 技能,这里也有这些 skill 技能,只有在新设定的 agent 才有用, 默认的这三个为了不影响大家操作,就没有添加自动识别这些 skill 的 功能啊,大家也可以设定自己的 skill 大 纲,应该是生成完成了, 五十张,已经生成完成了,我们来看一下,这里有一个大纲一致性审查啊,点一下这个,为什么点一下立马就能出来呢?是因为它是一边生成一边审查的哦, 他会分析哪些问题是需要改的,哪些问题是不重要的,大家需要自己看一下大纲,再根据这些看一下是否需要改, 避免 ai 出错。我们如果需要改的话,直接勾选一下修复,选中问题,或者是按照你的要求修复,然后可以在这里输入直接点修复,然后他修复完成以后,会自动的去填入到你的大纲信息里面,这里就修复完成了。第三章 第十三张,第五张他加入了一些信息,这里就不仔细的去看了,我们现在把大纲导入,导入到单文档 啊,历史大纲全大纲,这里看一下这个日制啊,这个大纲有一些大纲还是数字不够的,我们就自自行修改点,可以看一下日制,一共五十张,已经全部导入完成了。看一下大纲里边的信息,大纲里边的信息都在了,我们就可以开始讲解生成了。 这个章节生成呢,我们看一下这个是第一章,这里有个刷新按钮,如果你生成的过程当中,比如说升到十张或者二十张,他这里没有刷新,就是没有识别到这个章节号,你可以点这个刷新,如果依旧没有识别到,那就说明你没有分析, 只有分析完成了以后,它才会识别到下一章。分析当前章节的作用是让 ai 知道你这张写了什么,然后把这些记忆点需要的信息保存下来,存到系统里面,然后在 ai 之后生成的路径上,它会提取这些记忆的。还有这个本章目标, 这里你可以,一般情况下这里你不需要填,除非你需要新增设一些东西,比如说有一个新人物要出场了,你可以把人物信息放在这里,然后告诉 ai, 然后你需要让这个人物和主角发生一些什么关系, 或者是你突然来了个脑洞啊,插入到这里也可以包括一些时事的热梗啊,或者是其他的一些信息。这个信息是除去大纲、世界观、人物原有的信息之外的一些信息,包括你的一些 在你的提示词里边,或者在其他地方没有体现的,需要让 ai 去操作的一些提示词,也可以点入到这里, 这个是节奏的快慢,这里是伏笔,现在是没有伏笔的,有伏笔的时候也不用选,后台是自动的。为什么要设定让伏笔伏笔显示在这里呢?是为了让大家明确地看到这些伏笔。如果你有想推进的, 你看了之前生成的几张,你觉得哪个伏笔推进的速度不够,你就勾选是这个作用,但是平时的时候大家不需要选了,这里是清除,你比如说写到第十张了,但是我发现第七张、第八张我想改,但是改了就怕后面的不一样, 你就可以在这里直接从第七张开始,直接一键清除,把所有的信息清掉。我们这里都不演示单张生成了,我们就直接来这个啊,批量的生成,这里是三,大家也可以改,我们就批量生成,生成完了,我们拿这三张去验证一下生成的质量啊。 看这里,每一张的生成大概要花五分钟左右,如果你的 ai 的 处理速度和处理能力更好的话,它可以时间更短,我之前的测试是五十分钟生成了十张。这里边有一个重要的问题啊,大家在生成的过程当中不要去切这个界面啊, 你切到这里,切到这里,切动这个界面的时候, ai 会识别不到你是哪一个章节的,不是说 ai 不 够智能,而是大家有的时候会打开很多这个章节的标签, 他也不知道你到底写的是哪一章,或者是需要输入到哪一个环节里边,所以不要去切,切完这里边就会报错,你就需要重新生成。我们来说一下这个日制系统,这里的日制系统呢,就是你, 你看一下这里生成,我们先看一下啊,他是从第一章开始开始生成,第一章预检就是检查大纲的质量, 如果质量不行的话,它会帮你自动的扩充进分厂,再进行深层,这里是识别到的那个 ai, 这个是深层参数,就你的大纲的参数节奏点,角色构建上下文的 open 的 总预算和字数, 这是角色的基层类型化的记忆服务,这些现在是没有的,因为我们才是第一章开始构建第一章的,因为我们是第一章 预算分配大纲的头梗,我们可以看到他详细的运行过程和那个操作步骤的因果链,因果链追踪服务他是有的,但是他现在也没有,因果是刚开始,这里是上下文构建,已经完成了,核心重要参考上下文构成完成, 总共是这个提示词相当少。第一张没有什么其他的上下文,这是跳过分场了,因为大纲的质量分数够,这里已经开始生成了,那在这里可以看到他这一张的字数有点少,一千九百个字, 这里是辅助的七条制品。第一张记忆世界改变,世界变更零 f 比二对话二事件三角色变更,一会一个角色添加第一张记忆, 那这里各位开始一个预前置的分析,我们看一下在这里的一些结果,提取到的人物,新增的人物伏笔情节点,保存到本地角色,他都会对我们的系统记忆做一些增加和删删减啊,更新向量记忆啊。 这里的有一些兄弟会问呢,未找到角色,这是因为我们的角色库里面没这个角色,但是 ai 新增了这个角色,所以回头去对比的时候,发现这个名字没有,他会自动保存,所以不用管。又开始第二章了,重复了, 这里我们就剪掉了,等生成完成以后再开始,现在第三张也生成完成了,第三张字数好像不少了,看一下这个字数有点少,当大家字数少的时候,记得换模型,直接换模型就可以,我们看一下这里,那五点一不太行了, 换这个,我们等他这里分析完成了,我们再生成一张,大家就知道了,这个字数为什么会那么少。我们现在先看一下这里这三张, 把它打开,我们把这三张直接复制过来,再加一个 type c, 再加一个短。我们等一下啊,看一下啊,画面感极强,有点亮眼之处,槽点也有啊, 起步一调节,看啊,关掉,看一下这个,这波 c 哥好像分析的有点多,节奏可以打磨的几个地方他都会给出建议啊。七点五到八分,看一下,看这货还在,整体不错,完成度很高的,历史趋势开头还是可以的啊。

如何自动化操作大量数据?请继续往下看。好,今天我们来介绍一下这个 rpi 工具 panstation 就是 针对于批量数据是怎么操作的,因为后台有那个人私信我,他想要去批量去操作一些数据。好,今天我们就按照这个 呃批量去压缩视频的这个操作来给大家演示一下。就有的时候呢,我们可能会有很多的视频,对吧?我们假设有视频一百个或五百个,我们想去批量的对它进行这个初步的一些压缩,当然这个压缩工具是我随便找的一个压缩工具啊, 一个开源的压缩工具,那我如何去批量去执行呢?正常来说啊,我们我们先把软件打开到这个页面之后,对吧?我们打开原文件,然后选择我们的视频对不对?点击打开, 这个时候呢就会有我们这个,但这里面的参数你可以自己调好,或者说你要是不想调的话,你可以自动化也可以调好,我建议你直接调好就行,但这个东西就是根据你自己的软件来实际情况来定的啊,那这个时候我们直接就干嘛?点击开始编码, ok, 我 这个视频比较短啊,那这个时候你会发现啊,你每一个视频的它的长度和短度大小是不一样的,对不对?那每一个视频它它的完成的时间也是不一样的, 这个时候我们如果是批量执行的时候,我不可能说给一个固定的时间,比如说是三分钟、五分钟甚至十分钟,我肯定是判断了这个视频已经压缩完成了,我才继续的,干嘛去打开另外一个文件,对不对?那 这个就是判断的标准,我每打开一个文件,点击开始执行,之后呢?我只要判断队列已完成,那这个时候我就去干嘛?打开原文件去执行第二次,对不对? 好,这个时候我们就看一下我们的步骤啊,我们的步骤就是这边,当然为了节省时间,我已经录制好了啊。第一个步骤是打开原文件,对吧?点击它,第二个步骤选择要扫描的文件,其实就是这个,对吧?点击这个,然后这个时候呢输入我要的文件名,这里是重点了啊,重点来了, 输入文件名呢?是因为什么?因为我们要循环去执行这个,但是每一次这个值是不一样的,对吧?就是文件路径是不一样的,那这个时候我们要干嘛勾选这个便利之行 这个地方呢?我们可以导入我们的这个所有视频的文件路径,对吧?当然我已经导入好了啊,我们打开一下看一下,这是 filepass, 然后这边是文件的路径, 当然这个地方呢?呃,如果正常来说,我们是先去添加一个变量,然后导出 excel, 你 把对应的值填写好,就填写到这个这个里头,然后再导入进来就行了。然后我们刚才有三个导入,进来之后就像这样了,选择导入 便利数据,对吧?导进来之后点击确认,然后这边呢,就是在循环执行的时候,他就每一次会取一个值去输入,然后输入到这个地方,然后输入完之后,我们假设啊点击这个,对吧?这个是这个步骤已经进来了,打开文件了,然后点击执行,对吧?点击执行 开始编码。哦哦,这个打开的话是刚才那个啊?是这个步骤,等一下啊,打开是这个步骤,对吧?点击打开, 然后这个时候开始编码,对不对?点击开始编码, ok, 最重要的步骤呢,也就是这个等待元素出现,对吧?因为你五百多个视频,你可能是什么?有的长,有的短,有的可能一个小时能压缩完,有的可能一分钟能压缩完,那这个时候我们就判断什么,判断队列已完成,使用这个什么等待元素,等待元素之后呢?我们去定位, 当然啊,就像这个定位,这个按下 ctrl, 对 吧?他就会把这个元素拾取到了,那这个超长的等超时时长,超时时长的我们可以写一下,比如说什么一百秒,五百秒,就根据你自己的情况,你估计你下的视频大概是多少?他这个时间是什么呢?就是如果在这个时间内 提前完成了,那他直接就干嘛?点击下一个,如果一直没有找到,比如说你那个视频大概大概啊是五百秒才结束,那那你的超时时间假设是一个小时,或者说是半个小时,那达到五百秒一直还没有找到,那他就会报错了, 那他就会报错了。所以这个超时时间呢,就按照你估计的一个视频的长度来写一个最大值就行了。好,我们来演示一下啊,我们现在来看一下这个视频里头,我们把这个删了啊。 ok, 现在这个里面呢是没有视频的,对不对?我们可以来演示一下啊。点击运行 好,打开文件,输入文件路径,我们确定点击开始执行,它现在开始等待元素了,等待这个地方出现那个值,好,出现了还继续往下走,然后视频二, 然后开始编码。那我现在这个视频很短啊,我就弄了个十来十几秒的一个视频,它说它压缩会很快一些,好,继续执行。好视频三,点击确定它又开始, 这个视频要稍微长一点点啊,长一点点他就继续等待,对吧? ok, 全部执行完了,对不对?那执行完了之后呢?我们会发现 这边是我们导出的什么三个视频了,对不对?这就是我们我们这个导出的视频是这个工具自带的啊,你就不用去关心了啊。 所以说如果你想批量地去执行,呃,很多的数据,但这只是举我们举例的场景之一啊,你可以往一些 excel 表格导入数据啊,或者说去填写一些数值啊,就是说我每一次循环其他的值填的都一样,或其他的步骤都一样。 那只有呢?呃,我其中的某一个值是不一样的,那就可以使用这个便利执行便利执行去去导入我们的这个想要变化的这个值,那它就会在这个循环执行的过程中呢, 每一次其他的步骤都一样,唯独这个只是不一样的,那就可以实现我们的便利之行了。那这样的话,如果你有五百多个视,五百多个视频,或者很多很多的数据,你只需要去什么勾选这个便利之行,把你想要的数据导进去就可以了。 ok, 拜拜。


大家好,当我们在做安全测试开始之前,我们先要认清一个事实,就是我们安全测试到底是在做什么?尤其我们的 web 安全是在干什么? 前面其实我们介绍过啊,大家能看到这是我一个我们的整个 web 服务器 web 网站的部署结构, 那我们分为客户端前端和服务端后端,大多数的安全问题是因为什么而产生的呢?是因为我们的服务端后端出现了安全风险, 比如说编码我们有问题啊,或者我们没有足够考虑到安全因素啊,或者我们的逻辑有安全漏洞等等等等, ok, 但是实际上我们在发起安全攻击的时候,却没有办法直接怼到后端去发送,对吧?因为我们并不知道后端的接口,后端的协议,后端的接口定义是什么样子的, 我们也不知道数据库的地址是什么样的,所以针对后端的攻击,往往我们是要通过前端来调容,所以这样的一个动作我们就叫做客户端绕过, 所谓的客户端就是绕过我们的 web 端,绕过我们的网页端,直接打到我们的服务器上,但是又不是抛弃了我们的 web 端,而是说我们可以当做一个桥梁,通过这个桥梁 把我们的攻击请求传送到服务器后端上去, ok, 这样理解了这层含义呢,我们再来聊一聊客户端,它到底限制了用户什么事情? 其实我们很多时候啊,大家有一定的测试经验,大家知道我们很多时候在做测试的时候会发现 很多很多限制用户操作不是在后端完成的,而是在前端做了一定的线,所以这里面就给我们进行扣端绕过,提供了丰富的空间。 那扣端限制了用户的什么?首先第一点看,通过我们的扣端的一些组件,使用某种他认为可以防止用户修改的机制来传送数据, 什么意思呢?就是说比如有一些数据我是不希望用户修改,咱们好比说我现在我在淘宝上,我买一件东西, 我买一个 iphone 十 s, 好, 我买 iphone 十的时候,我现在我想要一看这个价格四千多, ok, 那 是因为 iphone 有 新版本出来,它降价了,对吧?四千多,我觉得有点贵, 那我必须要用四千多才能买,否则我就要等他六幺八双十一的活动了。但是有没有可能这个价格是可以改的呢? 这就是客户端限制用户的一个表现,我把这个价格写死了,没有办法让你把它修改出去,这是一点。 第二点是什么?是我们在客户端执行一些保护的机制,保护的措施控制用户与客户端的交互。 比如说你要输一个手机号码,你就要输幺三幺幺幺零,幺幺幺零,这是一个手机号码,我可以识别,你说我让你输一个手机号码,你写北京市东城区, 这样是通过不了的,对吧?我会在前端给你做一个叫验,这也是一方面客户端限制用户的表现,那针对这些客户端能够限制用户的,我们是不是能够将他绕过? 是不是只在前端限制了,而没有在后端再进行处理?这就是一种类型的安全风险,我们把它叫做客户端绕, ok, 那 所以呢?客户端绕过其实是一个非常简单的攻击类型, 也是我们比较容易理解的一个攻击类型,我们就把它单独拿出来跟大家讲一讲,这也算是我们在做其他安全类型的一个攻击的基础。 其实我们大多数的攻击,包括后面讲到的绘画管理也好,我们的叉 s s 也好, circle 注入也好,大部分都是通过扣端绕过的手段来完成的,所以呢,我们来看一看扣端能攻击的包含什么。 首先我们来看到第一点,就是我们扣端能攻击的肯定是一些前端的验证,就像我们刚刚说的,我让你输一个邮件邮箱地址,那是有一定的结构,有一定的格式的, 我让你输一个手机号码,我让你输一个身份证号,都是有相应的格式的较验,那这些较验是不是可以绕过?绕过以后又会退,对后端带不带来风险? 我既然在前端叫厌了,那么我势必是不想让这样被隔离到的,就是不允许输入的字母存入到我的数据库,那这样如果我能够绕过他, 跳过了前端,直接打到后端,会不会有一些安全风险?这就是我们扣端绕过的意。 第二就是隐藏表单词,就是有一些表单我们看起来他是不会随着我们修改而提交的,但是呢,实际上我们是不是能够把这个参数把它传递到后端,这也是就像我们前面提到 我的 iphone, 我 的价格,这个价格我本来是一个隐藏的,我没有办法修改对不对?我能不能够把它传递过去?第三就是还有一些我们想象不到的一些可攻击的点,就是我们的 cookie, 大家都认为 cookie 啊,好像是一个,前面我们也讲过 cookie, 对 吧? cookie 好 像是一个小文件呢,这个文件落在你本地了, 他跟我们的攻击好像并无大碍,对吧?不会影响到我们的攻击,我们也利用不到他什么,但是实际上不然,因为我们每一个请求,如果大家记得我们前面讲过的 http 请求协议的话, 大家会记得我们每一个 http 请求都会带上什么,都会带上相应的 cookie, 那 这个 cookie 我 们是不是能够进行绕过, 能够把我们的 cookie 值在我们的攻击端发生一些变化?还有第四点就是模糊数据,模糊数据,其实啊,大家可能不太理解,我们,换个词来说,大多数的模糊数据都是加密 加密数据,这样大家就好理解了,对吧?那加密数据为什么容易被攻击呢? 是因为我们往往认为包括黑客也好,包括我们的安全工作者也好,我们认为什么?我们认为所有需要加密的数据,它一定具有一定的安全风险, 不然我加密它干什么,对吧?比如说客户的身份证号,在我们互联网里面,很多时候这身份证号是要加密的,为什么?因为我们不能够让信息泄露, 对吧?当然还有一些其他信息我们是会加密处理的,比如客户的密码, 后面我们也会讲到这样的一些数据保存啊,加密处理啊等等等等,我们现在先起个调子,对吧? 就是说这样的加密数据其实往往是一些不安全因素,我们看到了我们就要尝试攻击他一下,看看能不能够破解, 不是为了解密,而是为了攻击,所以在这里啊,大家记住一个点,我们在这里我们作为一个安全工作者吧,我们想讲的客户端空间可攻击并不是说要通过攻击获利, 在这个小节里面我们讲客户端绕过的时候,我们说他可攻击是说什么? 是说我们可以把本来不能够修改的,本来不能够填入的数据填入到服务器端,也就是说绕过的客户端直接传递给服务器,只要这样就是一个安全风险。 有的同学说这会影响什么?这会造成资损吗?还是有什么安全漏洞啊? 这个其实从安全工作者的角度,我们可以不用管他为什么这么说,是因为我们只要认为所有在前端叫验的必须一定要在后端进行叫验, 必须不能够让这些前端会拦截住的数据落入到数据库里,只要有这一个前提,这就是一个安全风险。所以大家看,其实安全的角度和我们黑客攻击的角度是不同的,安全的角度更多考虑的是我们存在漏洞, 而非利用漏洞。当然我们有时候会通过利用漏洞来更加加深我们对相应安全漏洞的一些学习啊,一些理解, 这无可厚非。好,言归正传。接着来说我们的扣端攻击,这是我们常常攻击的一些点,接下来呢,我们来看看他的一些测试的手段。 扣端攻击的测试手段,其实我们往往有两种方式,一种呢是我们使用浏览器自带的调试工具,就是我们的开发者工具来完成。开发者工具大家都很熟,就是我们 f 十二的开发者工具, 它针对一些我们前端 js 啊,通过这样的一些处理返回,我们可以快速的进行一些调试。 那比如说我们举一个例子,举一个什么例子呢啊?我们 web goat 上节课给大家说了我们的 web goat, ok, 我 们来找一个例子,随便找一个我们看看,比如说在这里有一些教样像,对吧? 那这些,比如说在这里我们是一个 disable, 我 们说开发者工具可以做到什么呢?我们开发者工具可以帮助我们从这摁也行,我们用这个 ctrl shift 加 i 也行, 我们打开开发者工具,我们可以看到它的一些 html 源码,对不对?通过这些源码其实是我们可以进行一些调试,一些修改的。比如说这儿这是一个不可输入的, 我们完全可以把它的一个不可输入的属性 disable 把它删掉,这就是可以输入的,对不? 这是我们的一些通过我们的自带的调试工具来完成的。当然除了这些还有什么?还有我们可以直接打到它的一些 js 里面看这些 js, 这些 js 我 们是可以打断点去调试的。 那我们比如说有一个什么什么请求用到了一些 js 的 处理,那在前端做了一些处理,我们可以断点去修改,它 最核心的一个例子是什么啊?我跟大家聊一聊啊,大家不要说出去,是吧?就是说我们现在网上有一些 叫做从业资格证考试,不管是基金也好,证券也好等等各种各样金融行业啊,包括一些其他行业他都有这种考试,考试咱们不说啊, 考试之后呢?拿下证之后,其实每年是需要再进行一次学习,通过学习来巩固这个结果,最后有一个学分, 这个时候往往很多时候都是要,反正我们的官方网站的设计都是这样,我们需要先看完一个视频,看完这个视频之后再做视频下面的答题,答题之后再结束, 这当然很好,我们说一个偷懒的方式是什么呢?就是我们会看他的一些前端,我们来看看完视频到跳转到答题的那一步,到底触发了什么请求, 到底走到了什么? gs, 我 们可以在这里做一个断点,断点,当我们调试过以后呢?接下来就可以干什么? 比如说是这个方法,对吧?我们在这断点我们执行到这里,我们发现,哎,当这个某个值,比如 i 小 于零的时候,小于等于零的时候就是剩余的播放时间,小于等于零的时候,我就会跳到答题, 那现在我可以怎么做?我是不是可以在我的 ctrl 里面去把这个 i 的 值给它写成什么零, 对吧?我写成零之后,我再来执行的时候,马上我就可以跳过,那这个视频我是不是就可以不看了?这都是一些安全的风险, 这是我们说通过我们浏览器自带的调试工具来完成的,但是我们说在我们做安全攻击的时候用的比较少, 为什么?因为所有可以通过浏览器自带调试工具来完成的,大多数都可以通过我们的拦截服务器, 就是我们上一个小节给大家去聊的,我们的 burp suite 这样的一个安全攻击套件,都可以用它来完成这样的操作, 所以呢,这是我们第二种攻击方式,就是使用 burp 等拦截服务器。当然除了 burp 还有什么样的拦截服务器?比如说有一些拦截服务器是 webscribe, 对 吧?还有一些其他的,包括大家可能熟悉过的做测试的同学遇到过的 room fiddler, 对 吧? roomware shop 都可以,都是一些拦截服务器,我们都可以利用它来进行一个简单的攻击。为什么我们课程中采用的是 burp suite 呢?因为 burp suite 是 一个非常专业的安全工具, 它能够做到其他很多拦截服务器做不到的一些事情,所以它除了能够当做一个拦截服务器使用,还能够当做一个安全攻击的工具使用,这才是我们选择它的一个原因。 ok, 说完了,然后呢,我们再来说前端绕过的技术,说在互联网上我们经常会遇到一些情况,就是说我们在后端和前端沟通的时候,发现 我们为了节省服务器成本,我们能不较验到后端,就不较验到后端,我们避免给服务器造成太大的压力。大家知道像蚂蚁也好,支付宝,大家想每天会有多少人在登录支付宝,在支付宝上面操作 微信也好,对吧?再有其他的我们在淘宝网上购物也好,那每到双十一,大家知道那一瞬间,双十一开启的那一瞬间的流量几乎打到爆,几乎打到千万的 tps, 就每秒钟会有几千万甚至上亿的请求流入进来,那是一个什么概念?所以呢,我们经常会出现为了性能,我们把很多很多的逻辑处理放到前端,但是这就出现一个我们前面说过的问题了, 你可以把这些逻辑处理放到前端,但是不代表你后端就不需要做,只是说我们前端可以拦截掉大多数无效的请求, 对吧?比如说我这个东西,我这个商品是五件起购的,那我可以拦截掉那些选择了买一件、两件、三件、四件的人,我不让他把请求提交到后端, 但是一旦有人把请求提交到了后端,那后端你要不要处理啊?要不要验证啊?我们说要的, 从安全的角度来说是要的,所以说前端绕过技术就是针对这一个点,我们既然在前端调研,我们在后端有没有再重复的 double check, 它如果没有,这就是安全风险。 所以呢,我们来看一看,通过一个比较简单的前端安全绕过的实力,来深化一下对他的理解。其实我们刚看到就这个例子吗?就这个例子就很好,我们说实际上 这个例子是想让我们干什么?是想让我们我们读一读题啊?我这里没有把它翻译成中文,我们也不翻译成中文,我们就拿英文看,因为很多东西都是英文的,包括这样的一些安全漏洞,网站啊,我们的这些打击啊,大多数都是英文。 ok, 那 这里面呢?大家可以跟着我一起进入到登录 webgot, 之后我们进入到 webgot 左侧目录页的一个 perimeter templar, 然后这里面是参数检验的一些东西,我们点第一个 bypass html file restriction, 你看这名字就能知道了,是吧?我们绕过 by pass, 就是 绕过这个绕过 html 的 一些 file, 一 些我们的这些项目的一些 restriction, 它的一些限制, 前端绕过的限制。这个题它有一个 slogan, 就是, 呃, the forms below use html form files restrictions 就是 我们用了一些前端的教材,那 in order to pass this lesson 就是 我们为了通过这个课程呢。 submit a form with each field contained in a load value 就是 我们要提交给服务器端什么,每一个我们的项目都要提交给他一个不能够被接受,不能够被允许的值, 这就是我们绕过它,对吧? you must submit invalid values for all six fields in one form submission 告诉你你要提交六个,我们数了数啊,一二三四五,好像是五个项目,我们说哪来六个?我们想了一下第六个是什么?大家想第六个是什么?第六个是不是我们的 submit 按钮啊? 所以呢,这个时候我们就需要把我们的一个安全的工具把它拉起来了,这个安全工具就是我们前面一直在说的,我们的这个上节课也给大家去演示了我们的 boop 的 这样的一个套件, ok, 我 们就把我们的 burp 套件打开啊,打开的时候大家记住啊,即便大家第一次破解完,下一次打开还是用这个 burp loader 去开,不要直接去点它,我们还是用 burp loader, burp loader 呢,通过它来打开, 点击它,然后它会有一个启动页,启动页之后呢,我们就可以把这个 burp 把它拉起来 看。启动之后呢,我们就直接选择这个默认像就行了,默认像以后它就不用第一次我们注册过了,它就不用再注册,它就会自动进入到我们的 book 工具里面。如果大家觉得 我们的这种通过浏览器拦截的方式比较难用,就是说我们还需要配一下,大家不妨就直接使用我们自己的这个浏览器, 这个浏览器也非常好用啊,我们直接用它也能够达到拦截的效果,这样我们就不用配其他的拦截服务器这些代理了。 ok, 我 们打开一下我们对应的 web goat, ok, 我 现在先把它关掉,平时不用的时候我们可以直接把它给关掉, 然后呢,我们做一下登录 webgoat, webgoat, ok, 按照我们前面的顺序啊,还是进入到 per meter tapping bypass field, 大家看到了这里面我就不最大化了,为什么不最大化?我好在这里随时的双向操作, 我们可以直接把这个请求拦截掉,在 submit 的 时候把它拦截掉,所以我们把它点开, 点开之后,然后点击 submit, 我 们看这个请求就到了我们这里。 那这个时候我们看他是有一个、两个、三个、四个、五个、五个请求,人家题目告诉我们是有我们这次绕过的目标是什么?是要绕过六个, 所以这五个我们即便都绕过了也是不够的,我们要把第六个找出来,那第六个就是我们刚才说的 disable, 对 吧?因为什么?因为所有的 disable 的 请求,可能有同学对 html 有 一定了解, 所有的 disable 的 请求,其实我们在 submit 的 时候是不会跟着它带过来的,不会传递掉我们的 form 里面,所以呢,这个时候我们需要先优先地通过我们刚刚使用的开发者工具, 打开开发者工具,然后我们把这个项的 disable 给它去掉, 我们去掉之后他就变成了表单的一部分,再来进行拦截,看, 他就会把这个请求进来。那现在说我们要用什么?要用所有的不合法的、不能用的参数来调用到我们的后端,所以我把这些改成什么, 我随便改,因为第一个项是一个什么?是一个下拉框,对不对?下拉框它的值是负,那我们就给它改成负一二三, radio 值负和八,我们改成负一二三,这都是不被允许的值,然后 check box, 它就是 on 和 off, 对 不对?我们也改成负一二三 short input, 他 说 restricted to five practice, 就是 我们验证了它不能够输入超过五个字母,你看我在这里输入,我最多只能输五个,我不能输超过五个字母,那这个时候我就把它输超过五个字母, 那 disabled 呢?本来这个值它是 disabled 掉的,对不对?那我现在不 disabled 了,我也给它换个值,还是负一二三省事,对吧? submit 呢?也是我们用一个不能够取的值来代替, ok, 这样呢,我们把这个请求做了一些修改,这次修改我们是拦在什么地方?大家想我们前面的图,我们有一个扣端,有一个服务器,有一个数据库,我们是不是现在的请求是拦在了从扣端到服务器这个中间? 那我们在这里拦了一刀之后,我们把请求改了,然后再把它访问掉,通过掉, 这就是把我们修改好的一个请求发送给了谁?发送给了服务器端,服务器就认为这就是一个客户端发给我的请求,对吧? 那就是客户端发给我请求,我就可以认为这个请求是合法的,继续我的后续处理。 ok, 我 们把它否掉。 ok, 否掉之后呢?我们来看一眼这里面, 哎,这个是我们之前打开的,我们把它关掉就好了。我们不用浏览器,直接用我们的这个内置浏览器,这样比较方便 看,这时候它就会告诉你什么,它就会告诉你 congratulations, you have successfully completed sentence。 这是 web goat 的 一个特征,就是你每一个小节把它通过之后,这里会打一个绿勾,然后结果会告诉你, 恭喜啊,你已经成功通过了,完成了这个课程,对吧?为什么要说这句话?是因为我们后续还会用到它,什么时候用到?咱们大家走着瞧啊, 走着瞧,总会用到。 ok, 这就是一个非常简单的例子,对不对?做了两件事情,我们把两种工具联合起来使用,一种是我们的开发者工具,我们把前端绕过去, 把一个请求改掉了,我们的非要的把一个 haden 的 像把它改掉了。 ok, 然后第二个动作,我们用了我们的拦截服务器,把这个请求拦截住,然后重新发送给服务器端。好,这是我们的一个安全的实力, 大家会发现,你看其实没什么大不了,对不对?我们大家想到了,感觉没什么大,而我们事实上是不是大家在做测试的过程中,或者在做项目开发的过程中会存在这样的问题, 哎,我们自己写了一个下拉框,我们认为什么?我们认为这个下拉框里我标定了一二三四五,那他前端传给我的只会有这一二三四五这五个,只,只会从五个里选一个,不会有第六个,但是真的不会吗? 看看刚才我们的操作就知道,不是不会的,会的,我们可以改掉这个请求的,没有问题的。 你看这就是安全风险。安全风险往往是由于后端的人,我们服务器端想当然的认为通过了前端这个请求就是安全的, 实际上则不然,这才是我们安全风险最容易展现的一方面。刚刚说的是一个什么?是一个叫验箱,除了叫验箱还有什么?还有就是我们的隐藏表单, 隐藏表单往往是这些表单是看上去没有办法修改的,也没有办法通过客户端传送的。比如刚刚我们那个 disable 的 项,你看正常来说不会通过客户端传送给服务器端,但是我们稍加修改它是不是就可以了? 可以。同样,如果有一个表达的字段是什么?是 hide 或者 read on me, 那 么它在前端我们去做它的时候,去操作它的时候,它会显示成为无法编辑。 甚至呢,如果我们把它完全隐藏掉,就是用 display non 这样的手段,它根本不会在屏幕上去展示, 但是我们提交的时候会把这个字段保存在表单之中,把这个字段仍然递交给传送给我们的后端服务器。那这样的值我们有没有可能修改? 其实有的,上面一个例子大家都知道了,我修改很容易啊,我把请求拦截下来,把它改掉就好了,这种我们就要看后端有没有教样, 所以我们说比较经典的隐藏表达,绕过所有的安全风险,里面让人兴奋的事情啊,都是钱的绕过,都是金额的绕过。原来我做过一个互联网上的一个公开课,大家现在已经搜不到了, 叫做搞死苏宁系列,这也是当时苏宁做的一次活动啊,就是邀请了很多这个安全里面的白帽子,来帮助他们去做一些安全的教验,来帮助他们找问题,找苏宁易购的一些问题。 当时大家找到的问题,包括我自己找到的问题,大多数都是这样的,因为电商网站嘛, 我们比较容易想到的,比较容易观点到的就是能不能绕过钱,通过各种手段绕过钱,通过 circle 注入也好,叉 s s 也好,简单的绕过也好, 通过验证机制也好等等,我们能不能绕过支付,或者能不能让别人替我支付,这就是我们想的最开心的事情。 那隐藏表单字段呢?其实前面我们举个例子对不对?是 iphone 的 意思是吧?我们可以在 webgo 里面我们再找一个例子,这里面就叫下面的 go, 我 们把开发者工具先给它关掉就好。 下面一个叫 exploit hidden fields, 你 看就是绕过我们的隐藏表单,你看它的题目要求就是 try to purchase the hdtv for less than the purchase price if you have not done so ready 是 什么意思呢?就就是我们希望把这个东西啊, 把这个 ktv 的 这个商品的这个东西,从两千九百九十九块钱,是不是他这个价格太高了,我想便宜点,怎么便宜?我想花一分钱把它买,我能不能够成功? 大家说怎么做啊?其实有刚才的例子,大家应该很多同学都知道怎么操作,我们把我们的拨服务器打开,把拦截器打开,然后现在我把这个钱 purchase, 我 们看发现了什么?发现了我们在请求提交的时候,它有个数,个数是一对不对? price 是 多少?两千九百九十九点九九。他天真的认为什么 只要这个钱数我是不能改掉的,我就可以把它改发过来,因为他认为大多数的人都是普通人, 那标多少钱我就认可多少钱,他们忽略掉了。有一些攻击者,有一些安全工作者,他们是可以把这个请求拦截下来,不发送到服务器端,我改吧改吧,再发送,我怎么改?就像我们刚刚说的,我改成零点零一, 我一分钱,我也别说一分钱都不给你,我改成零点零零,显得有点过分是不是?我改成一分钱,我给你付一分钱,我把这个东西买回家,不要九九八,不要八八八,就要一分钱,所有商品带回家。 所以呢,这样我们把这个请求过滤掉之后,我们再来回来看 your total price is 零点零一,就是不管购物车里有多少东西,我最后花了多少钱,花了一分钱,我把这个东西买掉。 这就是我们针对于隐藏表单的一些绕过的操作。大家发现了,其实这些绕过的操作都非常简单,我们的核心宗旨就是把客户端发给服务器端的请求拦截下来,进行修改之后再行发送, 这样就可能创造出一些我们忽略掉的安全风险,大家自己想,其实自己也未曾没有忽略掉。再有另外的绕过形式就是我们的 cookie 绕过, cookie 绕过啊,其实是一个惯性思维,在我们的惯性思维里认为啊,往往页面上的输入才是真正的提交给服务器的输入, 实际上不然 cookie 也是其中一种,它跟我们的隐藏表单是很相似的,它并不会展示在用户的屏幕上,也不可能直接修改。而有些网站就为了图省事,我们就利用掉了这样的一些问题。 怎么说呢,它把能够享用的折扣我分为不同的会员级别, 我有普通会员不打折,有铂金会员打九折,白金会员打八折,还有什么钻石会员打五折,还有 vip 尊享会员打四折。那本来这就是一个会员标签嘛, 我们认定这个用户身上的标签,然后再进行打折就好了。 但是呢,有些我们的电商网站,有些网站为了图省事,我为了让后端请求少一次,我别再查一次用户信息,我查他有没有达标,我每次购买都得查一次,好烦啊,我怎么做呢?我把这个折扣率, 或者我把这个我的会员身份信息写到我的 gucci 里,我带过来,带过来的好处就是我后面的所有的在这个网站请求我买卖的时候,我直接读这个 gucci 信息不就好了吗? 他是几折,我就按照几折去打折就好了嘛,我前端展示也容易,我后端接受请求更容易。这就是我们的 cookie 绕过的一个最基本的,我们叫思维盲区。 那这个时候呢,他在做的事情,比如折扣率这个事情,就是我每一次请求成功之后,我返回一个响应,返回一个响应,我会 set cookie 里面,我给他 set 一个,这叫 discount agree, 就是 说打折的一个标签, 这个意思就是说我降低两折,我水果我卖卖打八折,我汽车打八折,我都可以打折。 那这样呢?我们就完全可以通过拦截服务器拦截掉某一个 cookie 的 值, 并且在购买的时候进行修改,把它改成什么?改成八折就是降八折,实际售价甚至更狠一点,我们降九十,九点九九对不对?只要百分之零点零一就可以, 你看这是我们的一个请求项。再有呢,我们除了 cookie 绕过以外,我们还有一些特殊的场景,就是前面说过的场景就是我们的模糊数据。 那我们说有时候还是刚才那个例子,我又举了一下我们的一个 price 对 不对?有时候我们的客户端的数据是经过加密或者某种形式的模糊处理,并不以明文的形式直接展示, 我们拦截掉,我们说你不是能改吗?我不让你改,为什么?我这个这个请求参数是个加密的,是个模糊数据,你啊解密不开的 对不?你看这样一串什么 d 六 e 一 四, b b d 六三,很长,我们知道虽然前面有一个 price, 我 们知道这是金额,但是它太长了,好烦啊,那怎么办?那这个时候针对于这种模糊数据 有几种方法,我们可以实施一些攻击,最简单的方式就是我们看能不能破解掉它, 破解掉它呢?就是我们有一些常规的加密, u t f 八加密,我们 base 三十二, base 六十四、 md 五的加密,像一些我们有对称解密的, 像 base 三十二、 base 六十四等等的这样的一些加密手段,我们可以通过 decode 的 方式去解决, 那没有的话我们也可以通过彩虹表去解决。大家在去解决的时候有一个非常简单的方式,就是我们上百度就有一些这个在线解密的一些工具,我们把拦截器关上, 不关拦截器的话,他每次都去拦截器里面,我们这里面就有一些加密解密的网站, 我们可以搜一下有很多这类型的解密网站,然后呢比如 m d 五, c m d 五就是 m d 五里最大的一个加密解密网站,比如我们把这样的一个请求 d 六 e 一, 我们把它给它粘贴下来, 我们把它粘贴下,粘贴下来之后呢,我们把它放到我们刚刚这个网站上, 我点一下查询,你看这是什么?这是不是解密掉了?你认为的我读不懂的数字,我就解密掉了,我们发现这是一个 md 五的加密。大家呢通过对加密的了解后面也会发现 不同的加密其实有它自身的不同的特征的。比如说 base 六十四、 base 三十二,它的加密方式,四幅串是什么样的? url 加密是什么样? md 五是什么样?像这种十六进至纯数字的大多数都是 md 五, md 五的加密解密, md 五我们叫做非对称解密,大家有熟悉的可以去学习一下,了解一下关于密码学的一些东西啊。 md 五这种方式叫做非对称加密,它指的是在代码层面,我们没有办法去做解密,但是真的没办法解密吗?也不是, 我们还可以通过彩虹表,所谓的彩虹表就是互联网上有一些人,有一些不管是搞安全的人还是搞黑客的人,他们比较闲啊,他们就把所有的一些常用的密码啊,词汇啊,数字啊, 把这些东西做 md 五加密之后,存到一个大型的数据库里面。像这个刚才我们看到 cmd 五网站演示,我有一个非常大型的库,这个库可能有几个 t, 它对应的就是我们的 md 五的铭文和密文。我们管这个东西就叫做彩虹表, 通过它可以进行一个,它其实是一个穷举记录的方式,非常傻,非常笨。 但是因为我们常用的这些字母串啊,密码啊,就这么多,所以呢感觉上就还好, 能够破译大部分内容。这是我们服务器绕过我们的客户端所产生的一些常见的问题, 我们也通过一些例子,大家自己手动的尝试了一下。课下呢也可以把我们今天课上的两个例子再进行操作一下来熟悉。这个小节呢,我们就聊到这里,下一个小节我们要聊一聊什么? 聊一聊互联网上是不是有过这样的问题,这样的问题会导致什么样的结果?大家可能听我前面这对介绍啊, 觉得好像也没什么大不了的,不就是绕过去了吗?我们来看看他会对我们的互联网,对我们的生活,对我们的网络造成什么样的安全风险。

老板让我搭建一台 ftp 服务器,可是我不会啊,怎么办?用这个软件分分钟搞定。 我们使用的是服务器,会 b c ftp server, 这个软件客户端用的费洛斯了,软件我已经打包好了,评论区留言进群直接发你。服务器和客户端的软件都是绿色版的,双击点击就可以直接运行。我们先创建一个账号,点击下一步, 输入两遍密码,点击下一步,点击浏览给我们的账号找一个存放文件的文件夹, 点击下一步,给我们的账号赋予权限,点击下一步,我们的账号就已经建完了。点击完成,我们在桌面右下角点开服务器, 服务器 ip 就是 我们的本机地址,服务器端口默认二幺连接数,根据我们的实际情况设置连接,超时设置三分钟不操作,链接自动断开, 启动 ftp 服务。设置里的三项也选上保存更改。用户账号管理里面能看到我们刚才建的账号。 安全性设置里可以设置访问白名单,黑名单,在线用户信息里可以看到当前访问服务器用户 服务器日记记录,登录操作日记,实时数据统计可以看到流量,下面我们登录一下服务器有两种方式,一种是资源管理器,一种是客户端。我们在我的电脑地址栏 输入我们的服务器地址, ftp 冒号斜杠,斜杠一九二点一六八点一点八,然后输入我们刚才设置的账号密码,现在我们已经进入服务器了,我们往服务器里拨动文件就会上传到根目录。 第二种方式我们用客户端连接下,双击打开客户端,输入主机幺九二点幺六八点幺点八,用户名密码端口二十一, 这样我们就连上服务器了,直接往远程主机里面拖动,文件就上传成功了。 我们再新建一个账号,商品 用新账号连接的时候出现了报错,是因为新建账号后需要重启下服务器, 连接成功, ftp 服务器我们就搭建好了。老板只夸我效率高,关注我,每天分享安防、电脑网络的实用技巧,帮你解决各种技术难题。

本视频耗时五个秒,零基础自学黑课共计五十八小时,四十八分钟,从入门到入全套教学视频包括工具安装与使用、黑客攻防渗透测试等,共七百集,很可能被下架,建议先收藏再观看。声明,所教程仅供学习,禁止用于违法行为。 ok, 那 么接下来呢,咱们来说一下这个 log 模块,那 log 模块呢?主要是用来记录日记的啊。那首先先跟各位小白同学们说一下,这个日记是什么东西啊? 呃,日制呢?就是我们程序运行的过程中,我们可以往文件里面去写一下咱们整个程序运行的这个,呃状态对吧?有没有报错呀?对不对啊?还有谁访问过哪些接口啊?访问过哪些东西啊?对吧?我们通过日制来去记录这些东西, 这些东西呢,一般情况下在开发的时候其实用处不大,为啥呢?因为我们开发的时候直接就是啊运行,然后在控制台里面直接就能看到了。但是,呃,如果说我们项目开发完了, 你把这个项目呢部署到你的客户的机器上,那你客户的机器上在跑这个程序的时候可能就会出现各种各样的不可预期的问题,对吧?那如果说出现了问题,怎么来去调试,怎么把这个错误给他改正呢?这个时候程序员们就会 啊到这个客户的机器上,把那个日制给他拿出来,然后看一眼整个运行的效果,哪块出问题了,然后再去改 啊,再去改。所以我们后期如果对项目做整体的维护的时候,日制是一个非常啊重要的一个点啊,非常重要的一个点,这个东西如果没有日制的话,你程序报错了,程序宕机了啊,整个服务器挂掉了,你都不知道到底哪出了问题,知道吧,所以日制呢,在 呃后期我们在写程序的时候会用的比较多,咱们前期学习的时候呢,用的不是很多啊,那 log 模块主要是用来做日记记录,但是呢, log 模块的代码各位不用记,看好啊,不用你记代码,咱们 log 模块的代码基本上都是固定的,你直接把这个代码框机给它复制,粘出来 啊,粘出来,然后呢,直接用就可以了,重点是怎么来用它啊?怎么用 log in 去记住字。那,那咱们来看一眼这个 log in 模块怎么来使用吧,基本上就这三步,第一步的话就是导入 log in 模块啊,把它导进来。第二步呢,做一些简单的配置,这个配置啊,不需要你去记, 记住,不需要你去记,直接粘过来就行了。然后第三件事就是当出现你需要记录日记的时候,对吧?把这个日记写到文件里面去就完事了啊。来到这边来看一眼啊,怎么来使用它?首先 import 绑定,把这个模块导进来,导进来之后呢,我们要把那个配置信息给他弄进来,就是这套东西, 好吧,就这套东西给它复制啊,拿过来扔过来就可以了。这段代码我再重申一遍啊,不用记,各位不用记。然后呢,简单的我给你们去,呃,讲解一下这里面到底是个什么含义啊?这里面每一个,呃,每一个选项都是什么东西?那第一个 log in basic config, 这个简单的翻译一下,就是 基本的配置啊,对 logo 模块做个基本的配置。那配置了哪些东西?首先第一个就是你这个东西要记录日记,日记文件是哪一个,你要把这个呃错误信息,或者说你的这个呃输出的东西写在哪个文件里面去,就把那文件名给他摆在这,好吧?这个是放个文件名,然后 formate 是 什么意思呢?就是格式啊,我们往日制里面写的东西,它有一个固定的格式,哎,这里面的格式来这个地方叫时间, 时间。然后 name, 这个是表示的是你整个这个项目的名称啊,整个项目的名称,如果我们不指定的话呢?这个地方默认就是 route 啊,默认就是 route。 然后这个地方 level name 就是 你这个错误,或者你记录的这条信息它的等级, 它的等级,我们会根据不同的等级来去判断你这条日制,你这条信息它的重要性就等级。然后后面来个 model, 就是 哪个模块出的问题 啊,哪个模块出的问题会放在这个地方啊?所以前面这一大堆呢记录的东西都是什么呢?就是在什么时间,哪个项目出现了什么等级的,对吧?在哪个模块里面出现哪个等级的啊?一条日记,那么日记的信息,具体的信息在后面 啊,具体的信息在后面的 message 啊 message。 所以 我们要往里面写的东西呢,都在这啊,都在这前面这些东西呢?全都是固定的啊,全都固定的,然后再往下, 你要往里面放时间好了,那时间得有什么格式?那底下就放了一个时间格式是百分号 y m d, 然后呢? h m s 就是 年月日时分秒啊,年月日时分秒最后有一个 level, 这个 level 比较重要,它表示的是 多少等级以上的内容会记录在这个日记里面去,说白了它相当于一个呃,门槛,相当于一个门槛,因为我们在记录日记的时候呢,会把这条消息呢划分成好几个等级啊,好几个等级。那么这个时候有一些个那等级的东西,我们就不需要往里面写,比方说 就随随便便的普普通通的一个啊,这样的东西吧,比如说 log in 啊,点儿,比方说我们往里面记录个日记 log, 来个十啊十等级的,然后写一句话叫你好,那我叫周杰伦, 我叫周杰伦。那么像这个十等级的东西,我认为它不是很重要,那我就不需要把它记录到日记里面去,所以呢,就是啊,我就可以在这块是来设置一个 level, 设置一个等级, 设置成二十, ok, 那 十等级的就不会被记录里面,所以它表示的是能够被记录到哪呢?能够被记录到咱们文件里面的等级,最低等级是多少?最低等级是多少?所以这个地方 它表示来记录文件中的日制的最低等级啊,最低等级。一般情况下,这个东西在我们前期开发的时候,一般都设置成零, 设置成零,那这样的话就会把所有的东西全部都记录到日记里面去。但是后期我们在整个项目上线 啊,交给客户去运行的时候,一般情况下我们会把它调高到四十,因为四十它表示的是 l 啊,它表示的是 l。 那 么接下来咱们来看一眼,具体这个 log in 应该怎么来用啊?重点是怎么来用它来这个地方 log in 的 日记 记录,那如何进行记录?那记录的话呢?第一个我们要知道的叫 log in 点叫 critical。 critical critical 它呢表示的是,呃,最高级别的就是默认情况下最高级别的日制信息来最高级别的日制信息,那么它是多少分呢?各位?它是五十分, 他是五十分就是他的 level 是 五十,他的 level 是 五十。最高的了啊,那比方说简单写一个叫你。呃,怎么讲呢?今天系统炸了对吧?这个请程序员来调试啊,来调试好了就写一个这么一句话出去,那再往下 logy 它的,呃 critical 它等级太高了,我们一般用的其实不多,用的最多的是下面这个叫 log in 点 arrow 来 arrow 什么意思呢? arrow 叫错误,它一般指的是 什么呢?就是我们普通的程序错误啊,俗称 bug 啊,俗称 bug。 一 般我们程序出 bug 的 时候,我们一般记录的日记呢都是 arrow 级别的。 arrow 多少多少等级呢? arrow 是 四十 啊,四十分,那么再往下 log in 点儿什么的比 iro 再低一级的叫 warning 啊,叫 warning。 warning 什么意思呢?叫警告,我只是一个警告信息啊,警告的话就是说白了它还没错,对吧?我就就就临时警告你一下这个地方 可能会产生什么样的危险,对吧?但是它还没有报错,只是一个警告,所以它的等级比这个 area 低一级就是三十啊,三十。再往下 log in 来 log in 点 warning, 再往下就是警告,都不用发了,我只想记录一条消息,那就是 if 啊, if, 那 我只是一个普通的消息,那普通的消息多少分呢?是 二十分。来,各位,他是二十分,那么再往下 log in 点,还有一个叫做 de bug, de bug, 这个是最低等级的,注意默认啊,默认最低等级的,咱们的这个, 哎, sorry 等级的这个消息,那最低等的等级的消息, de bug, 这个是十分啊,他表示是十分,就是等级是十,那么这些个分听好啊,不是我给的, 不是我给的,那谁给的呢?看好啊, logging 啊, logging, 然后点这地方,我们可以敲一个 l, 然后摁一下这个咱们的 ctrl, 然后点一下这个 l, 走你, 各位看, arrow 是 四十分, critical 是 五十分, warning 是 三十分,音符是二十分,还有这个,呃, bug 是 十分。最后一个 no test 啊,这个是 not sight 是 零分,就是没有设置的话是零分啊,没有设置的话零分,那这个人不会用的好吧,这个一般不会用的,那么再往下看,好啊, 此时我的等级啊,我的日记记录级别是四十分以上的。好了,那么就意味着当我把这几句话都执行了之后, 只有四十分以上的才会记录到我这个文件里面去,就比方说五十分的,四十分的好了,这两个等级的啊,日期会记录的到咱们的文件里面去,下面这三个他就不会被记录到咱们的文件里面去,因为他的级别不够啊。来,咱们运行一下啊,右键运行, ok, 程序运行完了,来,咱们看一眼啊,这个地方会有一个 x 一 点 text 的, 来打开看,这这里面 critical 级别的和 l 级别的 a 就 被记录到咱们的这个, 对吧?这个文件里面去了,所以呢,我们就可以通过这个东西来做一个开关,对吧?做开关我想让你的记录级别高一点。好了,那我就设置的高一点,想让他低一点呢,就记录的低一点,知道吧?这个根据你的自己的呃,实际情况来,一般情况下听好在 线上,也就是说我们把程序部署到客户那边的时候,他都是四十以上,因为只记录错误啊,只记录错误,一般我们在开发的时候 啊,肯定是希望这个记录的东西越多越好,所以呢,我们会把它调低啊,会调低,所以根据不同的情况和不同的场景,我们会对他,对他做出呃,不同的配置啊。好,那这是我们把一个日记说记录到一个文件里边的一些基本操作啊。那再往下,各位,如果说 我现在这个项目非常大,非常大,那么像给集团做的那种大型 erp, 那 这个时候问题就来了,你把一个大型的 erp 的 整个的一个项目所有的网址全都记录在一个文件里面,这个时候其实是有很大问题的啊,是有很大问题的,你想象一下啊, 你想象一下来,我这个地方有一个大项目啊,有个大项目,一个大的 e、 r、 p, 然后呢这里面想记录日记呢,注意这个大项目里面分成了来一个、两个、三个、四个、五个,可能有五个子项目,那每个子项目呢?又是单独的成一个字, 自己的一套体系,哎,单独的自己的一套体系,那么再往下走的话,你去记录日记的时候,注意所有的小项目的日记全都记录在同一个文件里面去,你想象一下这个时候五个项,五个项目, 五个系统同时在工作,能产生的 bug 或者能产生的信息非常的多,非常的多,可能不到一个小时啊,可能不到一小时可能就上 g 了,那这个时候怎么办? 那这个时候怎么办?我们说你在出问题的时候,你再去找的时候就很困难,那怎么解决呢?各位?很简单,就是每个子项目自己,哎,这个地方自己用一套日制系统,这个地方产生一个自己的日制来, 这个地方产生一个自己的日制,以后谁出了错,直接找那个相关的那个日制就能发现,对吧?就能发现,就是给他归类吗?对吧?归类完了之后就好处理了,那这个时候就涉及到一个问题,如果注意,如果 想要把日记记录在不同的文件中怎么办?注意上面这套方案是不行的,上面这个方案只是把所有的错误信息全都写在一个文件里面 去,那想分开不同的文件怎么来写?注意到这面来也是代码不用记,直接把这个看着啊,这一堆东西 全都给它复制,然后过来往里面一丢,啊,往里面一丢来,简单的给各位来讲一下,这里面什么意思啊?首先第一个地方,它是创建了一个叫啊 file handler 啊,这么一个东西,它叫文件助手,创建了个文件助手,这个相当于什么呀?你要是不理解的话,你把它当成什么呢?当成这个东西, 当然这东西就是 f 等于 open, f 等于 open, 是 不是打开一个文件呐?对不对?一样的,你看这里面,对吧?创建一个这个文件,然后往里面去,不停的追加日,追加信息,拎定 utl 八,这就是个文件嘛,对不对?打开一个文件好了,接下来这个文件助手要去设置一下什么呢?它的否梅特,否梅特什么意思? 是不是就格式化的那个东西啊?格式化的工具,那格式化的工具,看好,这里面给的就是那个格式,就跟上面咱们这个地方是一样的, 跟这个地方是一样的,把这个格式给它扔进去,时间,对吧?哪个项目?然后呢?出现的日制的级别以及哪个模块出的问题,对吧?最后,哎,把这个消息扔进去,所以这个格式跟上面是一样的, 再往下看。好啊,这是个文件助手,接下来我们创建的是日制的这么个对象啊, logo, logo 对 象,得到一个 logo 对 象,并且给这个 logo 起了个名字,你的项目叫啥,这块就起啥。比方说我的项目啊,第一个项目是财务系统, 好吧,财务系统,然后记录的日期级别依然是,对吧?要设置个级别 log in 点, arrow 是 多少来着?四十嘛,对不对?那这个地方代表的是创建日期,来创建日期对象啊,创建日期对象,然后 你的这个日期得跟文件捆绑一起啊,那就把上面创建好的,也配置好的这个格式的这样的个文件助手丢给这个,这个 logo 啊,丢给这个 logo, 那 么这个表示的是来 给预制对象设置文件啊,文件信息,那么再往下我就可以正常使用这个 log 一 了。来,我把它干掉啊,一会儿统一来使用,然后再往下再创建第二个,你不是要分项目吗?对不对?再分项目吗?那就是第二个了,来第二个预制, 写在这个 l 二的 log 里面,也是 a, 也是 u t l 八,然后底下也要配置一些信息,然后也要创建一个 log 对 象,因为我说了,你两个系统啊, 两个系统或者多个系统的时候,每个系统给自己单独创建一个 logo。 好 吧,那这个地方财务系统之后,我们来一个,呃,会计吧,会计系统,来,会计 系统啊,会计系统,好啦,会计系统记录的级别也是四十啊,也是四十,那这样的话 log 二就有了,把 log 二,对吧?跟那个 file handle 二捆绑在一起,就把这个文件助手,对吧?捆绑到 log 二里面去,紧接着我就可以正常使用这两个 log 了。那比方说来这地方看着啊, 这是项目一啊,项目一是我的这个财务系统出错了,那这个时候 log 什么呢? log 一 去点啊,往里面去写东西吧,写 l 来,财务系统炸了, 程序员出来工作了,对不对?那就是 logo 一, 然后再往下第二个是项目二,如果出错的话,那就是哪个了,就是咱们的会计系统,对吧?出错了,那会计系统的话就是 logo 来, logo 二,点 icon 来,这个时候来往里面写啊,这个是,呃,会计系统, 会计系统出错了啊,出错了,那么这个时候呢?需要这个,呃,领导啊,出来溜达溜达啊,溜达溜达,调侃一下,调侃一下领导, ok, 那 这样的话两个项目就会可以分开的去记录咱们的日记啊,分开记录日记了,来看一眼效果啊,走你。 哎,程序没有问题,看左边,打开来,这地方 l 一 和 l 二,来,打开 l 一, 那你会发现,对吧?这地方财务系统,然后那么财务系统炸了,程序员出来工作了,再往下 l 二来打开,对 吧?会计系统,它里面会计出错了,领导出来溜达溜达溜达,对不对?所以你就发现我就可以把这什么呢?把这个啊,一个系统的 日制给他分成,对吧?两套日制系统啊,两套日制系统,所以咱们后面在开发的时候,如果涉及到很大的那种项目的话,我们可能会使用到这套方案啊,这套方案,这里面代码听好,上面代码都不用记,你需要记的是什么?是这个东西 啊? arrow 啊,什么 critical, 还有 warning, 还有这个什么 info 啊,这些东西,我们主要是记这些东西,然后各位肯定会好奇说,如果说 我这程序在开发的时候,对吧?那个 login 模块默认给了几个级别,是不是?呃,那个,那个六个对吧?零一二三四五对吧?一共六个级别,那这个时候我说我这个项目啊,太大了啊,这个日日的级别呢?你给这几个不够用怎么办?对,就是用这个东西了,注意啊, log 啊, log 一 点,来这个地方可以写一个 log, log 里面你可以自己随意的往里面定义级别,比方说九九九九,对吧?这个级别很高了吧?来,后面跟上你的消息,对吧?没事啊,没事,来,右键走 来,跑完了看一眼啊,这个 log, 一 看这底下,对吧?来个没事啊,来个没事,并且级别多少呢?九九九九,所以你可以自定义 吧,你可以自定义,所以他没有说,呃,就是那么强制的规定你必须用什么 l 啊,那个东西知道吧?所以我们平时用的时候要么是 log, 要么是 l。 好 吧,基本上这两个用的是多的啊,像 critical 那 么高级别的日制的很少出现。各位啊,像 critical 这么高级别的日制很少出现,简单给你们举个例子啊。 呃,这个的 bug 呢,就相当于是就是唐僧一样面面俱到啊,就是给你墨迹墨迹墨迹墨迹墨迹的那种,对吧?每一每一步细致到不能再细了啊。然后呢,就是每一步做了什么事都要去记录,那就是 bug。 音符呢,就是把一些重要的东西呢给它记录一下啊,把重要的东西给它记录一下。 warning 呢,就是警告啊,警告就发生个警报。 ai 呢?什么意思呢?就警告真的来了 啊,那个警报真的真的发生了,就是那个海啸真的来了,对吧?那你这个时候肯定是出错了,对吧? critical 那 就相当于什么呢?相当于地球炸了, 地球炸了就整个这个系统都崩了,对吧?这个,这个是他系统分的等级。是这样的啊,系统是这样,你可以自己去想象,你想给他想象成什么都可以啊,但是人家给的这个含义呢,大致是这样的一个意思啊。 那这是关于咱们日记记录这块要跟各位聊的东西啊,主要记录一下他的等级和这个 logo 的 一些用法。好吧,主要是这些用法上面的代码。我再重申一遍,这些代码不用你去记啊,这些代码不用你去记,还有上面这个所有的配置都不用你去记啊,基本上他就这种东西属于万年不变的。 万年不变的,很少有人会程序员写写代码,没事去改改日记的啊?这个,这个没有啊?这个没有,基本上都是,就是在开发之前都要想好,都要去记录。好的啊,好,那日记呢?咱们就大概说到这,谢谢大家。

应一个老客户的要求啊,来一个保姆级别的客户端授权码如何开启并设置 foxmail? 首先我们先登录到企业邮箱的网页版,可以通过 mail 点我们单位的域名,也就是邮箱后缀,打开邮箱登录地址, 也可以通过企业的官方网站的右上方登录,然后输入账号和密码,登录到邮箱之后就可以在邮箱的顶部这里有个设置, 点开之后最下面就有客户端设置,在这里就有这个进入设置,点进来之后我们就能够看到客户端登录权限,网页端小程序,邮箱大师都是没问题的,通过账号密码就可以。那么非网易客户端,也就是 i m a p r m t p p 这种协议呢,我们可以在这边选择收取邮件的全部或者是三十天。 在下面呢可以看一下啊,这个授权码是我刚才设置的,没有用的话呢,那么我们把它删掉, 删除之后呢,重新生成一下这里的名称和到期时间,都不用管它了,默认点确定,那么确定好之后,这个授权码就生成成功了,点击这里的数字, 下面呢可以忽略关闭,那么授权码就生成成功了。然后我们再打开 foxmail, 这里要点其他,有想法,然后输入账号, 下面就输入刚才的这个授权码,然后这里有一个高级设置,这里的服务器呢就是 i m v p s j 点斜点幺六三九 s m t p 呢,就是 这样的话,我们的这个设置就成功了,然后这里的安全链接都是要打勾的,点继续,那么就添加成功码,完成 邮箱就可以了。如果是我们在用的账号出现这个密码错误无法使用的情况下呢?像刚才网页端生成的授权码之后,在发送的秒当中选择左下方的设置,然后这边点一下账户,在这个密码栏把授权码粘贴进去就可以了,赶紧去试一下。

看清楚了,这是 cloud desktop 官方客户端。我现在用的不是 cloud, 是 国产的 minimax, 不 用订阅,不用梯子,不怕封号, cooke skills plugin 全部能用,体验完全一致。三步搞定跟我做。第一步, 开启开发者模式,先彻底退出 cloud desktop, 重新打开,但先别登录,点 help troubleshooting enable developer mode 应用会自动重启。第二步是核心点 顶部新出现的 developer 菜单,选 configure, third party inference, 左边切到 collection 模式,选 gateway, 然后填三个东西, api 地址, key, 模型名。 我这里用的是 minimax token plan, 只要支持 antropic 协议的国产模型或者中转都能接。填完点 apply 重启就生效了,重启完直接能用官方客户端的体验国产模型的成本和速度,这波真香。