您需要先安装一个扩展,例如 篡改猴、Greasemonkey 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 暴力猴,之后才能安装此脚本。
您需要先安装一个扩展,例如 篡改猴 或 Userscripts ,之后才能安装此脚本。
您需要先安装一款用户脚本管理器扩展,例如 Tampermonkey,才能安装此脚本。
您需要先安装用户脚本管理器扩展后才能安装此脚本。
进入答题页面,点击右上角“执行自动答题”按钮即可完成答题,两把斗地主时间后请手动提交考试,题库不全欢迎补充,通过 GitHub Pr 提交,做好事不留名,你只需要知道我是东软某部门好心人,即将离职,分享出来方便你我他
// ==UserScript== // @name E享学院 - 东软信息安全考试自动答题脚本 // @namespace http://tampermonkey.net/ // @version 1.0 // @description 进入答题页面,点击右上角“执行自动答题”按钮即可完成答题,两把斗地主时间后请手动提交考试,题库不全欢迎补充,通过 GitHub Pr 提交,做好事不留名,你只需要知道我是东软某部门好心人,即将离职,分享出来方便你我他 // @author 东软某部门好心人 // @match *://learning.neusoft.com/o2o/* // @grant none // @license MIT // ==/UserScript== ( function () { 'use strict'; // 题库数据,请根据规则自行添加,不要复制题目对应的分数,否则无法匹配,判断题正确填1,错误填0。 const questionBank = [ { "title": "公司要求计算机终端必须设置屏幕保护程序,等待时间不得超过()。", "answer": ["5分钟"] }, { "title": "不允许接入公司办公网络的设备是()。", "answer": ["个人移动存储设备"] }, { "title": "关于公司邮件安全管理,下列哪项描述不正确()?", "answer": ["可以使用公司邮箱帐号在互联网上注册用户"] }, { "title": "负责公司信息安全管理的部门是()。", "answer": ["信息安全管理中心"] }, { "title": "以下符合公司强密码策略的是()。", "answer": ["DeXq@59!"] }, { "title": "公司的信息安全管理方针是()。", "answer": ["管理风险,保障信息安全,提升经营持续性"] }, { "title": "为防止出现意外情况导致重要数据丢失,需及时对重要数据进行()。", "answer": ["备份"] }, { "title": "ISMS是指()体系。", "answer": ["信息安全管理"] }, { "title": "下列关于疑似钓鱼邮件处置说法错误的是()。", "answer": ["点击邮件链接识别真伪"] }, { "title": "关于设备管理,下列哪项描述不正确()?", "answer": ["存有涉密信息的设备报废时,可以直接卖给废品收购公司"] }, { "title": "关于移动设备管理,下列哪项描述不正确()?", "answer": ["笔记本电脑等移动设备可以随意带出办公区域"] }, { "title": "信息安全工作依据的国际标准是()。", "answer": ["ISO27001"] }, { "title": "负责公司信息安全管理的部门是()", "answer": ["信息安全管理中心"] }, { "title": "下列哪项不属于信息安全的三要素()?", "answer": ["价值性"] }, { "title": "公司强密码策略要求密码有效期最多不超过()。", "answer": ["90天"] }, { "title": "对于违反公司信息安全管理规定的员工,公司将依据()进行处罚。", "answer": ["东软信息安全管理办法"] }, { "title": "信息安全是()。", "answer": ["保持信息的保密性、完整性和可用性等"] }, { "title": "关于信息安全事件管理,下列哪几项描述正确()?", "answer": ["负责处理信息安全事件的组织叫做信息安全事件处理小组ISIRT", "信息安全事件发生后,相关人员须第一时间报告给部门的信息安全主管", "事件处理完毕以后一周内,部门信息安全事件处理小组ISIRT须对事件进行认真总结和分析"] }, { "title": "关于人员安全管理,下列哪项描述正确()?", "answer": ["离职后仍须对在职期间接触到的涉密信息履行保密义务"] }, { "title": "下列哪些资料属于项目开发中的涉密信息()?", "answer": ["测试数据", "项目管理资料", "设计文档", "客户信息", "需求文档"] }, { "title": "在客户现场出差,下列哪些做法正确()?", "answer": ["未经客户许可,不得私自下载使用QQ、迅雷等软件", "由于工作需要使用的特殊软件应向客户提出申请,经审批后方可使用"] }, { "title": "公司的涉密信息密级划分为()。", "answer": ["东软秘密 Neusoft Confidential", "东软内部公开 Neusoft Internal Public", "东软绝密 Neusoft Top Secret"] }, { "title": "关于涉密信息管理,下列哪几项描述正确()?", "answer": ["涉密信息须按照公司的要求进行密级标识", "涉密信息是指对公司具有一定价值或敏感的信息,不能公开发布、展示、泄露", "不能通过信息共享的方式(如个人简历、博客等)公开发布项目信息及客户信息"] }, { "title": "关于防病毒管理,下列哪几项描述正确()?", "answer": ["IT服务中心负责卸载防病毒软件,禁止员工私自停用或卸载", "如发现感染病毒或设备出现异常时,应立即拔掉网线,断开网络连接", "安装公司统一要求的防病毒软件", "计算机终端至少每月执行一次病毒扫描"] }, { "title": "关于信息安全责任,下列哪几项描述正确()?", "answer": ["根据信息安全事件的影响程度,公司将按照《东软信息安全管理办法》处罚事件责任人", "信息安全人人有责", "公司最高管理者承担公司信息安全管理工作最高责任,部门负责人承担部门信息安全管理工作最高责任"] }, { "title": "日常工作中,员工应()。", "answer": ["配合部门信息安全专员实施信息安全检查工作", "按要求参加信息安全培训", "办理内部调转或离职手续时,必须先履行部门内部的相关异动手续", "遵守《员工信息安全日常行为规范》要求"] }, { "title": "员工在客户现场出差,应注意下列哪些方面()?", "answer": ["出差前应该接受相关信息安全培训并签订《客户现场信息安全日常行为规范》", "未经客户许可,禁止项目人员多人共用同一帐户访问客户应用系统", "未经授权禁止向客户提供合同/协议以外的产品及服务", "需要对客户现场开发设备的物理位置、配置、网络访问方式等进行变更时,应在得到客户允许后实施"] }, { "title": "关于网络使用,下列哪些行为不正确()?", "answer": ["因工作需要开通的全通访问权限,因同事也有工作需求,可在同事的设备上用自己的帐号登录,供其使用", "因工作需要开通的全通访问权限,因同事也有工作需求,可将密码提供给同事使用", "为提高工作效率,项目组申请的真IP服务器可配置无线路由,供项目组其他成员上网使用"] }, { "title": "关于员工卡的使用,下列哪几项描述正确()?", "answer": ["如员工卡丢失,须在24小时内上报部门门禁管理员", "员工卡是员工身份的标识,工作期间应正确佩戴员工卡", "如忘带员工卡,应在相关管理人员处借用临时卡"] }, { "title": "项目进行过程中应该遵守的信息安全规范/要求有()。", "answer": ["相关法律法规的要求", "公司的信息安全规范", "部门的信息安全规范", "客户的信息安全要求"] }, { "title": "关于开发活动的信息安全要求,下列哪几项描述正确()?", "answer": ["开发过程中使用客户提供并且需要注册的软件时,必须使用客户信息进行注册", "不同项目、不同业务之间,应确保数据安全,不可以相互泄露", "项目启动前,项目人员须接受相关信息安全培训", "必须确保测试环境、开发环境与运行环境相互隔离"] }, { "title": "计算机终端必须进行的安全配置包括()", "answer": ["系统帐户应取消“密码永不过期”设置并停用Guest帐户", "开启审核策略、帐户锁定策略", "安装公司统一要求的防病毒软件", "设置带密码保护的屏幕保护程序,等待时间不得超过5分钟", "配置公司提供的补丁更新服务,并及时安装"] }, { "title": "关于不再使用的或保密期限到期的涉密文档的销毁,下列哪几项描述正确()?", "answer": ["存储涉密信息的光盘需物理破坏或使用专业消磁机进行销毁", "办公设备分配给其他员工前,应及时彻底清除设备中存储的信息"] }, { "title": "强密码策略适用于()。", "answer": ["应用系统/程序的帐户密码", "服务器登录密码", "计算机终端开机登录密码", "邮箱帐号密码"] }, { "title": "项目测试结束后,需要删除保存在()的测试数据。", "answer": ["智能终端设备", "公/私有云", "计算机终端", "服务器/应用系统"] }, { "title": "关于上网行为,下列哪几项描述不正确()?", "answer": ["使用客户提供的业务专属网络访问Internet资源", "开启手机热点,通过热点访问Internet资源", "通过在业务专属网络上架设的代理服务器访问Internet资源"] }, { "title": "对长期未开机使用的计算机终端设备处置方法正确的是()。", "answer": ["检查防病毒软件是否正常运行", "检查计算机终端安全配置是否符合公司要求", "对计算机终端进行一次全面扫描"] }, { "title": "依据对公司或相关方造成的影响及损失程度,将信息安全事件分为()。", "answer": ["严重信息安全事件", "重大信息安全事件", "一般信息安全事件"] }, { "title": "计算机终端必须进行的安全配置包括()。", "answer": ["配置公司提供的补丁更新服务,并及时安装", "设置带密码保护的屏幕保护程序,等待时间不得超过5分钟", "开启审核策略、帐户锁定策略", "安装公司统一要求的防病毒软件", "系统帐户应取消“密码永不过期”设置并停用Guest帐户"] }, { "title": "使用客户设备现场开发,项目结束时应按照公司及客户要求处理设备中的项目信息。", "answer": [1] }, { "title": "如计算机终端因系统、客户等原因无法按照公司要求进行安全配置,则需进行例外审批及备案。", "answer": [1] }, { "title": "员工出入办公大厅应自觉刷卡,禁止尾随他人进入。", "answer": [1] }, { "title": "本着“用户至上”的原则,只要客户要求做的事情都应该尽量满足。", "answer": [0] }, { "title": "开发过程中,应明确测试数据的访问权限和管理要求,测试结束后应及时删除测试数据。", "answer": [1] }, { "title": "严禁将个人移动设备(如笔记本、U盘、移动硬盘)接入公司办公网络。", "answer": [1] }, { "title": "发现办公区域有外来人员时,应该及时向部门信息安全主管报告。", "answer": [1] }, { "title": "办公设备带出维修时应对存储的涉密信息进行安全处理(备份、硬盘格式化等)并保留确认记录。", "answer": [1] }, { "title": "外来人员参观公司办公大厅、机房等区域,禁止拍照。", "answer": [1] }, { "title": "经常来访的人员比较熟悉,可以不进行登记,直接进入办公大厅。", "answer": [0] } ]; const notHaveQuestion = (question) => { console.log('题库暂无此题,欢迎提交:%c' + question, 'color: red;') } const checkboxClick = (answer, contents, checkboxButtons) => { const current = answer[0]; if (contents.includes(current)) { checkboxButtons[current].click(); } checkboxClick(answer.slice(1), contents, checkboxButtons); } const executeButton = document.createElement('button'); executeButton.textContent = '执行自动答题'; executeButton.style.position = 'fixed'; executeButton.style.top = '50px'; executeButton.style.right = '50px'; executeButton.style.zIndex = '9999'; executeButton.style.backgroundColor = 'blue'; executeButton.style.color = 'white'; executeButton.style.padding = '10px 20px'; executeButton.style.border = 'none'; executeButton.style.borderRadius = '5px'; document.body.appendChild(executeButton); executeButton.addEventListener('click', function () { const questionAreas = document.querySelectorAll('.pb24.ph32'); questionAreas[0].questionType = 'radio'; questionAreas[1].questionType = 'check'; questionAreas[2].questionType = 'judge'; questionAreas.forEach(function (questionArea) { const questions = Array.from(questionArea.querySelectorAll('div[class="mv24"]')); // 可让我一顿好找啊,最后一道题 class 是 mt24 const additionalQuestion = questionArea.querySelectorAll('div[class="mt24"]')[0]; questions.push(additionalQuestion); questions.forEach(function (question) { const questionTitle = question.querySelector('[data-rich-text="1"]').textContent; const correspondingQuestion = questionBank.find(qb => qb.title === questionTitle); if (correspondingQuestion === undefined) { notHaveQuestion(questionTitle); } if (correspondingQuestion) { if (questionArea.questionType === 'radio') { // 单选题处理 const radioButtons = question.querySelectorAll('input[type="radio"]'); const radioContent = question.querySelectorAll('div[class="flex"]'); radioContent.forEach(function (content, index) { const answer = content.querySelectorAll('span[data-rich-text="1"]') if (correspondingQuestion.answer.includes(answer[0].innerHTML)) { radioButtons[index].click(); } }); } else if (questionArea.questionType === 'check') { // 多选题处理 const checkboxButtons = question.querySelectorAll('input[type="checkbox"]'); const checkboxContent = question.querySelectorAll('div[class="flex"]'); const contents = []; checkboxContent.forEach(function (content) { contents.push(content.querySelectorAll('span[data-rich-text="1"]')[0].innerHTML) }); correspondingQuestion.answer.forEach((value, index) => { setTimeout(() => { for (let i = 0; i < contents.length; i++) { if (contents[i] === value) { checkboxButtons[i].click(); } } }, index * 100); // 每次点击延迟 100ms }); } else if (questionArea.questionType === 'judge') { // 判断题处理 const radioButtons = question.querySelectorAll('input[type="radio"]'); correspondingQuestion.answer.forEach(function (value) { if (value === 1) { radioButtons[0].click(); } else { radioButtons[1].click(); } }) } else { console.log('其他错误') console.log(questionArea) } } }); }); }); } )();