全部学科
Python全栈
python
NodeJS全栈
nodejs
小程序首页

JS安全与边界处理专题测试

20 题 60 分钟 难度:

考察知识点

知识模块题数核心考点
跨站请求伪造(CSRF)防御4题CSRF攻击原理、Token验证、SameSite属性、防护策略
跨站脚本攻击(XSS)防御4题XSS类型识别、防御机制、CSP策略、DOM安全
输入验证与净化4题输入过滤、白名单验证、边界检查、净化函数
输出编码与转义4题HTML编码、URL编码、JavaScript编码、上下文转义
安全编码实践4题安全API使用、敏感数据处理、最佳实践、防御性编程
1
多选题

关于跨站请求伪造(CSRF)攻击的防御措施,以下哪些是有效的防御策略?

A

使用CSRF Token验证,每次请求携带服务器生成的随机Token

B

验证HTTP请求头的Referer或Origin字段

C

对关键操作使用POST请求替代GET请求

D

设置Cookie的SameSite属性为Strict或Lax

E

在前端使用JavaScript验证用户身份

F

对敏感操作要求二次验证(如输入密码或验证码)

2
多选题

以下哪些场景容易受到CSRF攻击?

A

用户登录银行网站后,访问恶意网站发起转账请求

B

网站使用GET请求执行状态变更操作(如删除数据)

C

网站未设置Cookie的SameSite属性

D

网站使用HTTPS传输数据

E

用户点击恶意邮件中的链接修改账户密码

F

网站对所有请求进行CSRF Token验证

3
单选题

设置Cookie的SameSite属性为Strict时,Cookie的行为是什么?

A

允许所有跨站请求携带Cookie

B

只允许同站请求携带Cookie,完全禁止跨站请求

C

允许安全的跨站GET请求携带Cookie,禁止跨站POST

D

允许跨站请求携带Cookie,但需要用户显式确认

4
判断题

CSRF攻击不需要获取用户的Cookie内容,只需要浏览器自动携带Cookie即可完成攻击。

A

B

5
多选题

以下哪些是有效的XSS防御措施?

A

对用户输入进行HTML实体编码后输出

B

使用textContent代替innerHTML设置文本内容

C

设置Cookie的HttpOnly属性防止JS读取敏感Cookie

D

使用Content-Security-Policy(CSP)限制脚本来源

E

对URL参数进行JavaScript编码后使用

F

使用eval执行用户输入的表达式

6
多选题

关于XSS攻击的类型,以下哪些说法是正确的?

A

反射型XSS:攻击代码通过URL参数传递,服务器将其反射回页面

B

存储型XSS:攻击代码存储在服务器数据库中,每次访问都会执行

C

DOM型XSS:攻击代码完全在客户端执行,不经过服务器

D

存储型XSS危害最大,影响所有访问该页面的用户

E

反射型XSS需要诱导用户点击恶意链接才能触发

F

DOM型XSS可以通过服务器端输入验证完全防御

7
多选题

以下哪些前端编码实践可以有效防御XSS攻击?

A

使用encodeURIComponent编码URL参数

B

使用DOM API的setAttribute设置属性,而非拼接HTML字符串

C

对用户输入使用正则表达式过滤HTML标签

D

使用框架提供的安全绑定机制(如Vue的v-text、React的{})

E

禁止使用innerHTML、document.write等危险API

F

将用户输入直接插入script标签执行

8
填空题

防御XSS攻击时,常用的HTML实体编码是将 < 编码为______,将 > 编码为______,将 " 编码为______,将 ' 编码为______

9
判断题

设置Cookie的HttpOnly属性可以完全防止XSS攻击。

A

B

10
多选题

关于用户输入验证,以下哪些做法是正确的?

A

在前端和后端都进行输入验证

B

使用白名单验证而非黑名单过滤

C

验证数据类型、长度、格式和范围

D

对验证失败的数据尝试修复后使用

E

使用正则表达式严格验证邮箱、URL等格式

F

对所有输入统一使用相同的验证规则

11
多选题

以下哪些输入验证场景需要特别关注安全问题?

A

用户注册时的邮箱和手机号验证

B

文件上传时验证文件类型和大小

C

URL跳转时验证目标地址是否为合法域名

D

搜索功能时验证搜索关键词长度

E

表单提交时验证必填字段是否为空

F

JSON解析时直接使用eval处理用户输入

12
填空题

输入净化(Sanitization)是指在验证通过后,进一步移除或转换输入中的________________,使其安全地用于后续处理。常见的净化方式包括HTML实体编码、移除HTML标签、限制字符集等。

13
判断题

前端输入验证足够安全,不需要后端再次验证。

A

B

14
多选题

用户输入在不同输出上下文中需要使用不同的编码方式,以下哪些匹配是正确的?

A

HTML内容上下文:使用HTML实体编码(<、>等)

B

HTML属性上下文:使用HTML属性编码,确保属性值被正确引号包裹

C

JavaScript上下文:使用JavaScript编码(转义引号、反斜杠等)

D

URL上下文:使用encodeURIComponent编码参数值

E

CSS上下文:使用CSS编码(转义特殊字符)

F

所有上下文统一使用HTML实体编码即可

15
多选题

以下哪些输出编码方式是正确的?

A

在HTML内容中使用 < 显示用户输入的小于号符号

B

在JavaScript中使用 \x3c 编码 < 字符

C

在URL参数中使用 %3C 编码 < 字符

D

在HTML属性中使用 &lt; 编码 < 字符,并用引号包裹属性值

E

直接将用户输入拼接到内联事件处理属性中

F

在CSS属性值中使用 \3c 编码 < 字符

16
填空题

输出编码应该在______进行,而不是在______进行。因为不同的输出上下文需要不同的编码方式,过早编码可能导致数据在不同上下文中显示异常或安全失效。

17
判断题

使用JSON.stringify()可以将用户输入安全地嵌入到JavaScript字符串中。

A

B

18
多选题

以下哪些是JavaScript安全编码的最佳实践?

A

避免使用eval、Function构造函数执行动态代码

B

使用const和let替代var,减少变量提升带来的意外作用域问题

C

对敏感操作添加日志记录和审计

D

使用严格模式("use strict")捕获更多潜在错误

E

在生产环境中暴露详细的错误信息给用户

F

对API接口进行速率限制防止滥用

19
多选题

以下哪些编码实践可能导致安全漏洞?

A

将用户密码硬编码在前端JavaScript代码中

B

使用document.cookie直接读取敏感Cookie

C

在URL中传递敏感参数(如token、密码)

D

使用HTTPS传输数据

E

在前端代码中验证用户权限然后跳过后端验证

F

将API密钥暴露在前端代码或localStorage中

20
填空题

安全编码遵循最小权限原则,即代码和用户只应拥有完成任务所需的________,不授予不必要的权限。例如,前端JavaScript不应能读取设置了________属性的敏感Cookie,用户账户不应有管理员权限除非确实需要。

← 上一个试卷 JS基础语法与变量专题测试
下一个试卷 → JS对象与数组专题测试

📝 发现内容有误?点击此处直接编辑

想参加完整模拟考试?
小程序提供计时考试、自动评分和详细解析

长按或扫描二维码,立即体验

扫码体验小程序
马上就来
使用微信扫描二维码
立即体验完整题库