防止命令注入的方法如下:
程序对非受信的用户输入数据进行净化,删除不安全的字符。
创建一份安全字符串列表,限制用户只能输入该列表中的数据。
配置URL访问控制策略:部署于公网的axis服务器,可通过ACL禁止对/services/AdminService及/services/FreeMarkerService路径的访问。
禁用axis远程管理功能:axis<=1.4版本默认关闭了远程管理功能,如非必要请勿开启。若需关闭,则需修改axis目录下WEB-INF文件夹中的server-config.wsdd文件,将其中”enableRemoteAdmin”的值设置为false。
if (!Pattern.matches("[0-9A-Za-z@.]+", dir)) {
// Handle error
}
String btype = null;
// only allow integer choices
int number = Integer.parseInt(request.getParameter("backuptype"));
switch (number) {
case 1:
btype = "tables"
break; // Option 1
case 2:
btype = "users"
break; // Option 2
case 3:
btype = "full"
break; // Option 3
default: // invalid
break;
}
if (btype == null) {
// handle error
}