首页  |  知识库  |  资源下载  |  在线工具  |  A-Z  •  JAR  •  名词查         

在开发中高风险的Java库函数及相关参数校验注意事项

标签:安全,漏洞,高风险,开发注意,校验转义     发布时间:2017-10-08   

一、前言

在开发过程中不可避免会使用到一些函数,在这些函数的使用过程中如果不注意安全问题,则容易出现安全问题,我们把这类函数称之为高风险函数。请大家在使用高风险函数时注意规避风险。

二、注意事项

1、 不拼命SQL语句。

2、 对传入参数进行校验、转义。

3、 对于传入的参数尽量规定范围,可以采用写死参数、预设参数白名单的方式。

4、 注意捕捉异常。

5、 高危函数,避免非通过其对外暴露安全漏洞


函数类型

函数名称

命令执行函数

Runtime.  public Process exec(String command)

Runtime.  public Process exec(String command, String[] envp)

Runtime.  public Process exec(String command,  String[] envp,  File dir)

Runtime.  public Process exec(String[] cmdarray)

Runtime.  public Process exec(String[] cmdarray, String[] envp)

Runtime. public Process exec(String[] cmdarray, String[] envp, File dir)

SQL命令执行函数

Statement  boolean execute(String sql)

Statement  ResultSet executeQuery()

Statement  ResultSet executeQuery(String sql)

Statement  int executeUpdate()

Statement  int executeUpdate(String sql)

Connection  prepareStatement(string sql)

XSS相关执行函数

PrintWriter.print(…)

PrintWriter.println(…)

PrintWriter.write(…)

HttpServletResponse.sendError(…)

ServletOutputStream.print(…);

ServletOutputStream.println(…);

OutputStreamWriter.write(…);

Path traversal相关函数

new FileWriter(string name)

new File(String name)

代码注入执行函数

ScriptEngine.eval(string str)

XPath注入执行函数

XPath.compile(string str)

数值转换危险函数

Integer.parseInt(string str),

Long.parseLong(string str),

Double.parseDouble(string str),

危险输入源函数

BufferedReader.readLine(),

ServletRequest.getParameter(),

ServletRequest.getHead(),

ServletRequest.getParameterValues(),

其他危险函数

System.runFinalizersOnExit

Runtime.runFinalizersOnExit