1.下列描述中会产生死锁的是:
- 异常条件下没有正确释放锁;
- 两个或多个线程以不同的顺序请求和释放锁;
- 在产生阻塞的操作中持有锁
2.安全编程规范中,下面说法正确的有:
- 创建文件时指定合理的访问权限;
- 对所有外部输入进行校验;
- 禁止不受信任的代码直接终止JVM。
3.下列哪些方法的返回Buffer对象暴露给不受信任的代码,存在原始数据被恶意修改的风险:
- CharBuffer.duplicate();
- CharBuffer.subSequence();
- CharBuffer.wrap();
4.下列哪个场景可以使用java.util.Random类产生的随机数
- 随机选取路由。
5.若程序中需要获取操作系统登录用户名,应采取下列哪种方法来获取:
- 由JVM属性获取:System.getProperty(“user.name”);
6.下面对Java反序列化的描述正确的是:
- Java的反序列化操作,可以绕过对象构造函数的执行。
7.在下列哪个场景中,不需要加密和数字签名机制保证数据安全:
- 同一信任域内组件间传递。
8.下列JDK的API调用中若使用不当易遭受OS命令注入的是:
- java.lang.Runtime.exec()
9.String sql = “select * from product where id =”+ Integer.parseInt(request.getParameter(“id”))该代码存在什么样的安全问题:
- 无sql注入风险,但是将string转化成int型变量时可能会有NumberFormatException输出。
10.对于函数返回值的描述,不正确的是:
- 函数执行结束,操作已经执行,再判断函数的返回值已经没有意义,所以不需要再判断函数的返回值了。
11.在java中,使用JDBC时,使用PreparedStatement执行SQL语句有哪些好处:
- 使用PreparedStatement进行sql注入防护是优选方案
- 使用PreparedStatement多次执行同一条sql语句可以提升执行的效率
- 正确使用PreparedStatement,可以有效防止sql注入的发生。
12.敏感异常:
- java.io.FileNotFoundException
- java.net.BinException
- java.util.ConcurrentModificationException
- java.sql.SQLException
13.常见的xml实体解析导致的安全风险有哪几种?
- XXE
- 内部实体扩展
14.下面哪些攻击或漏洞是由于未对程序输入做有效的校验与限制所导致:
- zip炸弹攻击
- SQL注入
- 目录遍历攻击
- OS命令注入
15.输入校验不可以防止以下哪种漏洞?
- CSRF
16.关于JAVA序列化与反序列化错误的是:
- 反序列化的输入数据可以由外部输入指定。
PageHelper.startPage