防止命令注入的方法如下:
程序对非受信的用户输入数据进行净化,删除不安全的字符。
创建一份安全字符串列表,限制用户只能输入该列表中的数据。
配置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 choicesint number = Integer.parseInt(request.getParameter("backuptype"));switch (number) {case 1:btype = "tables"break; // Option 1case 2:btype = "users"break; // Option 2case 3:btype = "full"break; // Option 3default: // invalidbreak;}if (btype == null) {// handle error}
